Drop old SetResourceLock stuff in favor of mutos.
* dcrt0.cc (_reslock): Remove. (__cygwin_user_data): Accommodate removal of resourcelocks member. (dll_crt0_0): Don't initialize resourcelocks. * exceptions.cc (_cygtls::signal_exit): Drop resourcelocks handling. * mmap.cc (mmap_guard): New muto. (LIST_LOCK): Define. (LIST_UNLOCK): Define. (mmap_list::search_record): Remove. (mmap_list::try_map): Include code for anonymous case from mmap_list::search_record. (mmap_is_attached_or_noreserve): Access bookkeeping lists in a thread safe way. (mmap64): Replace SetResourceLock/ReleaseResourceLock by LIST_LOCK/LIST_UNLOCK. Lock at the latest possible point. (munmap): Replace SetResourceLock/ReleaseResourceLock by LIST_LOCK/LIST_UNLOCK. (msync): Ditto. (mprotect): Ditto. * thread.cc (ResourceLocks::Lock): Remove. (SetResourceLock): Remove. (ReleaseResourceLock): Remove. (ResourceLocks::Init): Remove. (ResourceLocks::Delete): Remove. * thread.h (SetResourceLock): Drop declaration. (ReleaseResourceLock): Ditto. (class ResourceLocks): Drop definition. * include/sys/cygwin.h (class ResourceLocks): Drop forward declaration. (struct per_process): Replace resourcelocks with additional unused2 element. (per_process_overwrite): Accommodate above change.
This commit is contained in:
@ -140,7 +140,6 @@ extern HANDLE cygwin_logon_user (const struct passwd *, const char *);
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
class ResourceLocks;
|
||||
class MTinterface;
|
||||
#endif
|
||||
|
||||
@ -198,18 +197,16 @@ struct per_process
|
||||
DWORD api_minor; /* linked with */
|
||||
/* For future expansion, so apps won't have to be relinked if we
|
||||
add an item. */
|
||||
DWORD unused2[5];
|
||||
DWORD unused2[6];
|
||||
|
||||
#if defined (__INSIDE_CYGWIN__) && defined (__cplusplus)
|
||||
ResourceLocks *resourcelocks;
|
||||
MTinterface *threadinterface;
|
||||
#else
|
||||
void *resourcelocks;
|
||||
void *threadinterface;
|
||||
#endif
|
||||
struct _reent *impure_ptr;
|
||||
};
|
||||
#define per_process_overwrite ((unsigned) &(((struct per_process *) NULL)->resourcelocks))
|
||||
#define per_process_overwrite ((unsigned) &(((struct per_process *) NULL)->threadinterface))
|
||||
|
||||
extern void cygwin_premain0 (int argc, char **argv, struct per_process *);
|
||||
extern void cygwin_premain1 (int argc, char **argv, struct per_process *);
|
||||
|
Reference in New Issue
Block a user