* dcrt0.cc (dll_crt0_0): Eliminate muto::init call.

* sync.h (locker): New, currently unused class.
(muto::init): Eliminate.
* sync.cc (muto::init): Ditto.
(muto::init): Eliminate critical section lock and instead use name as a guard
to prevent against multiple attempts to initialize the same muto.
* pinfo.cc (pinfo::init): Set myself procinfo when not execing and pid matches
windows pid or cygwin pid.
This commit is contained in:
Christopher Faylor
2005-03-08 05:05:02 +00:00
parent 4534561877
commit 18edcecfbf
5 changed files with 30 additions and 23 deletions

View File

@@ -40,10 +40,15 @@ public:
void upforgrabs () {tls = this;} // just set to an invalid address
void grab () __attribute__ ((regparm (1)));
static void set_exiting_thread () {exiting_thread = GetCurrentThreadId ();}
static void init ();
};
extern muto muto_start;
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) \