Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,56 @@
|
|||
#include "ontimer.bi"
|
||||
|
||||
Randomize Timer
|
||||
Dim Shared As Uinteger nWorkers = 3
|
||||
Dim Shared As Uinteger tID(nWorkers)
|
||||
Dim Shared As Integer cnt(nWorkers)
|
||||
Dim Shared As Integer checked = 0
|
||||
|
||||
Sub checkpoint()
|
||||
Dim As Boolean sync
|
||||
|
||||
If checked = 0 Then sync = False
|
||||
checked += 1
|
||||
If (sync = False) And (checked = nWorkers) Then
|
||||
sync = True
|
||||
Color 14 : Print "--Sync Point--"
|
||||
checked = 0
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub task(worker As Uinteger)
|
||||
Redim Preserve cnt(nWorkers)
|
||||
|
||||
Select Case cnt(worker)
|
||||
Case 0
|
||||
cnt(worker) = Rnd * 3
|
||||
Color 15 : Print "Worker " & worker & " starting (" & cnt(worker) & " ticks)"
|
||||
Case -1
|
||||
Exit Select
|
||||
Case Else
|
||||
cnt(worker) -= 1
|
||||
If cnt(worker) = 0 Then
|
||||
Color 7 : Print "Worker "; worker; " ready and waiting"
|
||||
cnt(worker) = -1
|
||||
checkpoint
|
||||
cnt(worker) = 0
|
||||
End If
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Sub worker1
|
||||
task(1)
|
||||
End Sub
|
||||
Sub worker2
|
||||
task(2)
|
||||
End Sub
|
||||
Sub worker3
|
||||
task(3)
|
||||
End Sub
|
||||
|
||||
Do
|
||||
OnTimer(500, @worker1, 1)
|
||||
OnTimer(100, @worker2, 1)
|
||||
OnTimer(900, @worker3, 1)
|
||||
Sleep 1000
|
||||
Loop
|
||||
Loading…
Add table
Add a link
Reference in a new issue