02-10-2019, 07:47 PM
Macro MKV
out
;create list of files for testing
ARRAY(str) af; GetFilesInFolder af "q:\test"
str files=af
;==========================================================================================
int nThreads=4
__Handle sem=CreateSemaphore(0 nThreads nThreads 0)
str f
foreach f files
,wait 0 H sem
,mac("sub.Convert" "" f sem)
WaitForThreads 0 "MKV:Convert" ;;to avoid calling ReleaseSemaphore(closedHandle)
#sub Convert
function $f sem
atend sub.ReleaseSem sem
;thread code for testing
MES m.timeout=RandomInt(1 3); m.x=RandomInt(1 1000)
mes f "Convert" m
#sub ReleaseSem
function sem
ReleaseSemaphore(sem 1 0)