diff options
author | Christopher Faylor <me@cgf.cx> | 2005-04-05 04:31:00 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-04-05 04:31:00 +0000 |
commit | 322c131f9f8ec512b0b319aa383d70f8c8e60fbd (patch) | |
tree | dfb27bede722fde757fd4b86b2e51f3d6603b84f /winsup/cygwin/sync.h | |
parent | 82ae6271bae18731076156c2a52065cfb89d2f53 (diff) | |
download | cygnal-322c131f9f8ec512b0b319aa383d70f8c8e60fbd.tar.gz cygnal-322c131f9f8ec512b0b319aa383d70f8c8e60fbd.tar.bz2 cygnal-322c131f9f8ec512b0b319aa383d70f8c8e60fbd.zip |
* sync.h (muto::operator int): New operator.
(locker): Remove unused class.
(new_muto): Delete.
(new_muto1): Ditto.
(new_muto_name): Ditto.
* cygheap.cc (cygheap_setup_for_child): Reflect use of static storage for muto
rather than pointer.
(_csbrk): Ditto.
(_cmalloc): Ditto.
(_cmalloc): Ditto.
(_cfree): Ditto.
* cygheap.h (cwdstuff::cwd_lock): Ditto.
(cwdstuff::get_drive): Ditto.
* cygmalloc.h (__malloc_lock): Ditto.
(__malloc_unlock): Ditto.
* cygtls.cc (sentry::lock): Ditto.
(sentry::sentry): Ditto.
(~sentry): Ditto.
(_cygtls::init): Ditto.
* dcrt0.cc: Ditto.
(cygwin_atexit): Ditto.
(cygwin_exit): Ditto.
* debug.cc (lock_debug::locker): Ditto.
(lock_debug::lock_debug): Ditto.
(lock_debug::unlock): Ditto.
(debug_init): Ditto.
* dtable.cc (dtable::init_lock): Ditto.
* dtable.h (dtable::lock_cs): Ditto.
(dtable::lock): Ditto.
(dtable::unlock): Ditto.
* exceptions.cc (mask_sync): Ditto.
(sighold): Ditto.
(set_process_mask_delta): Ditto.
(set_signal_mask): Ditto.
(events_init): Ditto.
* grp.cc (pwdgrp::pwdgrp): Ditto.
* malloc_wrapper.cc (mallock): Ditto.
(malloc_init): Ditto.
* path.cc (cwdstuff::cwd_lock): Ditto.
(cwdstuff::get_hash): Ditto.
(cwdstuff::get_hash): Ditto.
(cwdstuff::init): Ditto.
(cwdstuff::set): Ditto.
(cwdstuff::get): Ditto.
* pwdgrp.h (pwdgrp::pglock): Ditto.
(pwdgrp::refresh): Ditto.
* sigproc.cc (sync_proc_subproc): Ditto.
(get_proc_lock): Ditto.
(proc_subproc): Ditto.
(_cygtls::remove_wq): Ditto.
(proc_terminate): Ditto.
(sigproc_init): Ditto.
* timer.cc (lock_timer_tracker::protect): Ditto.
(lock_timer_tracker::lock_timer_tracker): Ditto.
(lock_timer_tracker::~lock_timer_tracker): Ditto.
* wininfo.cc (wininfo::_lock;): Ditto.
(wininfo::winthread): Ditto.
(operator HWND): Ditto.
(wininfo::lock): Ditto.
(wininfo::release): Ditto.
* wininfo.h (wininfo::_lock;): Ditto.
Diffstat (limited to 'winsup/cygwin/sync.h')
-rw-r--r-- | winsup/cygwin/sync.h | 35 |
1 files changed, 5 insertions, 30 deletions
diff --git a/winsup/cygwin/sync.h b/winsup/cygwin/sync.h index c729454c3..441892a08 100644 --- a/winsup/cygwin/sync.h +++ b/winsup/cygwin/sync.h @@ -16,6 +16,9 @@ details. */ there are issues with malloc and fork. */ class muto { +public: + const char *name; +private: static DWORD exiting_thread; LONG sync; /* Used to serialize access to this class. */ LONG waiters; /* Number of threads waiting for lock. */ @@ -24,10 +27,9 @@ public: LONG visits; /* Count of number of times a thread has called acquire. */ void *tls; /* Tls of lock owner. */ // class muto *next; - const char *name; /* The real constructor. */ - muto *init(const char *name) __attribute__ ((regparm (3))); + muto *init (const char *) __attribute__ ((regparm (2))); #if 0 /* FIXME: See comment in sync.cc */ ~muto () @@ -38,35 +40,8 @@ public: bool acquired () __attribute__ ((regparm (1))); void upforgrabs () {tls = this;} // just set to an invalid address void grab () __attribute__ ((regparm (1))); + operator int () const {return !!name;} static void set_exiting_thread () {exiting_thread = GetCurrentThreadId ();} }; -class locker -{ - muto *room; -public: - locker (muto *m) {room = m; room->acquire ();} - ~locker () {room->release ();} -}; - -/* Use a statically allocated buffer as the storage for a muto */ -#define new_muto(__name) \ -({ \ - static muto __name##_storage __attribute__((nocommon)) __attribute__((section(".data_cygwin_nocopy1"))); \ - __name = __name##_storage.init (#__name); \ -}) - -/* Use a statically allocated buffer as the storage for a muto */ -#define new_muto1(__name, __storage) \ -({ \ - static muto __storage __attribute__((nocommon)) __attribute__((section(".data_cygwin_nocopy1"))); \ - __name = __storage.init (#__name); \ -}) - -/* Use a statically allocated buffer as the storage for a muto */ -#define new_muto_name(__var, __name) \ -({ \ - static muto __var##_storage __attribute__((nocommon)) __attribute__((section(".data_cygwin_nocopy1"))); \ - __var = __var##_storage.init (__name); \ -}) #endif /*_SYNC_H*/ |