DosCreateSpinLock: Difference between revisions
Appearance
Created page with "Create a subsystem spinlock. This function is physical DevHlps introduced with OS/2 SMP. ==Syntax== <PRE> DosCreateSpinLock(PHSPINLOCK pHandle) </PRE> ==Parameters== ==Retur..." |
|||
Line 15: | Line 15: | ||
==Example Code== | ==Example Code== | ||
<PRE> | <PRE> | ||
// OS/2 adv srv 4 SMP spinlock | |||
extern "C" { | |||
typedef ULONG HSPINLOCK; | |||
typedef HSPINLOCK FAR *PHSPINLOCK; | |||
APIRET APIENTRY DosCreateSpinLock(PHSPINLOCK pHandle); | |||
APIRET APIENTRY DosAcquireSpinLock(HSPINLOCK Handle); | |||
APIRET APIENTRY DosReleaseSpinLock(HSPINLOCK Handle); | |||
APIRET APIENTRY DosFreeSpinLock(HSPINLOCK Handle); | |||
}; | |||
class SpinLock { | |||
HSPINLOCK sl; | |||
public: | |||
SpinLock() { DosCreateSpinLock(&sl); } | |||
~SpinLock() { DosFreeSpinLock(sl); } | |||
void Request() { | |||
DosAcquireSpinLock(sl); | |||
} | |||
void Release() { | |||
DosReleaseSpinLock(sl); | |||
} | |||
}; | |||
</PRE> | </PRE> | ||
Revision as of 19:19, 7 June 2017
Create a subsystem spinlock. This function is physical DevHlps introduced with OS/2 SMP.
Syntax
DosCreateSpinLock(PHSPINLOCK pHandle)
Parameters
Return Code
Errors
Remarks
Example Code
// OS/2 adv srv 4 SMP spinlock extern "C" { typedef ULONG HSPINLOCK; typedef HSPINLOCK FAR *PHSPINLOCK; APIRET APIENTRY DosCreateSpinLock(PHSPINLOCK pHandle); APIRET APIENTRY DosAcquireSpinLock(HSPINLOCK Handle); APIRET APIENTRY DosReleaseSpinLock(HSPINLOCK Handle); APIRET APIENTRY DosFreeSpinLock(HSPINLOCK Handle); }; class SpinLock { HSPINLOCK sl; public: SpinLock() { DosCreateSpinLock(&sl); } ~SpinLock() { DosFreeSpinLock(sl); } void Request() { DosAcquireSpinLock(sl); } void Release() { DosReleaseSpinLock(sl); } };
Related Functions
[[Category:]]