mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-06 03:08:31 +00:00
Support process shared pthread_rwlock
Cosmo now has a non-nsync implementation of POSIX read-write locks. It's possible to call pthread_rwlockattr_setpshared in PTHREAD_PROCESS_SHARED mode. Furthermore, if cosmo is built with PTHREAD_USE_NSYNC set to zero, then Cosmo shouldn't use nsync at all. That's helpful if you want to not link any Apache 2.0 licensed code.
This commit is contained in:
parent
c22b413ac4
commit
2d43d400c6
11 changed files with 179 additions and 35 deletions
|
@ -107,8 +107,15 @@ typedef struct pthread_cond_s {
|
|||
} pthread_cond_t;
|
||||
|
||||
typedef struct pthread_rwlock_s {
|
||||
void *_nsync[2];
|
||||
char _iswrite;
|
||||
union {
|
||||
void *_nsync[2];
|
||||
struct {
|
||||
uint32_t _nsync_word;
|
||||
char _pshared;
|
||||
char _iswrite;
|
||||
_PTHREAD_ATOMIC(uint32_t) _word;
|
||||
};
|
||||
};
|
||||
} pthread_rwlock_t;
|
||||
|
||||
typedef struct pthread_barrier_s {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue