summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/sync.h
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/sync.h')
-rw-r--r--winsup/cygwin/sync.h35
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*/