一回目のawaitがSleepしてなかったのを修正
#include "hsptv.as"
#module "mod_await"
#uselib "KERNEL32.DLL"
#func _Sleep "Sleep" sptr
#uselib "winmm.dll"
#func _timeBeginPeriod "timeBeginPeriod" sptr
#func _timeEndPeriod "timeEndPeriod" sptr
#cfunc global GTime "timeGetTime"
#undef await
#deffunc await int w
if tBP=0 {
tBP=1
_timeBeginPeriod 1
tim=GTime()
}
_Sleep limit(w-(GTime()-tim),0,w)
await@hsp 0
tim=GTime()
return
#deffunc timeEndPeriod onexit
if tBP {
_timeEndPeriod 1
}
return
#global
c=1
repeat 20
w++
await 10 //awaitからawaitの時間を使うので
ttim=GTime()
tim=gettime(7)
repeat c
await w
loop
ttimcnt(cnt)=GTime()-ttim
timcnt(cnt)=(gettime(7)-tim+1000)\1000
mes strf("await %2d //timeGetTime() %5.2fms //gettime(7) %5.2fms",w,double(ttimcnt(cnt))/c,double(timcnt(cnt))/c)
loop
後gettime(7)は本来の精度の1/10ぐらいしかないのでtimeGetTimeも使用