Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROGRAM "foo"
- IMPORT "kernel32.dec"
- IMPORT "xio"
- IMPORT "xsx"
- CONSOLE
- DECLARE FUNCTION Entry()
- DECLARE FUNCTION ULONG ThreadEntry(ULONG)
- DECLARE FUNCTION ULONG CriticalSection(msg$)
- SHARED ULONG mutex
- SHARED ULONG data
- ''******** MAIN PROGRAM ***********
- FUNCTION Entry()
- ULONG thread_id
- SHARED ULONG mutex
- mutex = CreateMutexA(0, $$FALSE, 0)
- CreateThread(0, 0, &ThreadEntry(), 0, 0, &thread_id)
- DO
- XstSleep(150)
- CriticalSection("main")
- LOOP
- END FUNCTION
- FUNCTION ULONG ThreadEntry(ULONG ptr)
- DO
- XstSleep(100)
- CriticalSection("thread")
- LOOP
- RETURN 0
- END FUNCTION
- FUNCTION ULONG CriticalSection(msg$)
- SHARED ULONG mutex
- SHARED ULONG data
- WaitForSingleObject(mutex, $$INFINITE)
- INC data
- IF(data > 100000) THEN data = 0
- PRINT msg$ + STR$(data)
- ReleaseMutex(mutex)
- END FUNCTION
- END PROGRAM
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement