05-21-2018, 09:17 PM
To avoid rep, use event.
Function sm_process1
Function sm_process2
To test, run sm_process2 first, then sm_process1.
Function sm_process1
;/exe
__SharedMemory sm2
byte* m=sm2.Create("sm_82569" 1000)
__Handle ev1=CreateEvent(0 0 0 "ev1_82569")
__Handle ev2=CreateEvent(0 0 0 "ev2_82569")
int* p=m
for _i 0 10
,1
,p[0]=_i
,SetEvent ev1
SetEvent ev2
out "sm_process1 ended"
;BEGIN PROJECT
;main_function sm_process1
;exe_file $my qm$\sm_process1.qmm
;flags 6
;guid {5EF00E1E-5835-41AF-86CA-1777B56049EC}
;END PROJECT
Function sm_process2
;/exe
__SharedMemory sm2
byte* m=sm2.Create("sm_82569" 1000)
__Handle ev1=CreateEvent(0 0 0 "ev1_82569")
__Handle ev2=CreateEvent(0 0 0 "ev2_82569")
rep
,sel wait(0 HM ev1 ev2)
,,case 1
,,int* p=m
,,out p[0]
,,
,,case 2
,,break
out "sm_process2 ended"
;BEGIN PROJECT
;main_function sm_process2
;exe_file $my qm$\sm_process2.qmm
;flags 6
;guid {473089D6-9493-4D5D-8351-736A645793E4}
;END PROJECT
To test, run sm_process2 first, then sm_process1.