| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | Semaphore |
DT> If you want to use this technique, then I recommend that either DT> you totally understand all the resources required for *ANY* API's you DT> call while within a critsec, or you don't call any API's at all while DT> within the critical section. You're being too easy on him Denis. DosEnterCritSec() should not be used. Period. Only lazy programmers use it, usually because they don't really understand how os/2 works (and certainly don't understand SMP); they are bound to write crappy software. Recently, someone in one of the comp.programmer.os2 conferences had to deal with a third party DLL that was using DosCritSec -- he was calling it from his PM (perhaps even WPS class) program. The DLL was using DosEnterCritSec to prevent reentrancy, he thinks. I was totally disgusted. I think we figured out a hack for him to replace it with a semaphore (dllrname and a whole bunch of fwdstamp's). There was one case under 16 bit os/2 that it was required (to free a thread's stack at the right time), but this technique is not required under 32bit os/2. 32bit semaphores are pretty frigin quick too, and can become even faster (even faster than critsec for that matter) if you use a LOCK'ed local reference counter before the DosSem...() calls. IBM's C compilers use such a sem internally. --- Maximus/2 3.00* Origin: Sol 3 * Toronto * V.32 * (905)858-8488 (1:259/414) SEEN-BY: 50/99 270/101 620/243 625/100 711/401 409 410 413 430 808 809 934 SEEN-BY: 711/955 712/407 515 624 628 713/888 800/1 @PATH: 259/414 400 99 250/99 3615/50 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™.