| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | Mutex semaphores |
-=> Quoting Mario Semo to Phil Crown <=-
MS> class RequestMutex
MS> {
MS> public:
MS> RequestMutex(Mutex & mutex) : mutex(mutex) { mutex.request();}
MS> ~RequestMutex() { mutex.release();}
MS> private:
MS> Mutex mutex;
MS> };
MS> function()
MS> {
MS> RequestMutex request(mutex);
MS> call someone();
MS> return rc;
MS> };
MS> now, request is a local object, and when an exception is thrown, ALL
MS> local (stack based) objects get destroyed! so, ~RequestMutex is called
MS> and the sema4 is released.
MS> Servus, Mario!
Neat trick!
But, is the overhead of creating the mutex semaphore trivial? My code
has two threads calling this semaphore VERY often.
Also, say one thread has created the sem and is pre-empted before
deleteing it, what happens when the second thread tries to create a sem
with the same name? Error code or exception or blocks until the first
thread deletes the sem?
Phil Crown
pcrown{at}airmail.net
http://web2.airmail.net/pcrown/
--- Blue Wave/OS2 v2.30
* Origin: * MacSavvy OS/2 BBS * Dallas, Texas * 972-250-4479 * (1:124/1208)SEEN-BY: 50/99 270/101 620/243 625/160 711/401 409 410 413 430 808 809 934 SEEN-BY: 711/955 712/407 515 624 628 713/317 800/1 @PATH: 124/1208 1 396/1 270/101 712/515 711/808 934 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.