Jump to content

DosCreateSpinLock

From EDM2

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:]]