Jamie Reece Wilson
6852fbddf1
Win7 test: [2024-09-10 07:09:31] [Debug] | Waiting 750 overshoot: 103600 NS [2024-09-10 07:09:31] [Debug] | bret: true [2024-09-10 07:09:31] [Debug] | Waiting 750 overshoot: 145200 NS [2024-09-10 07:09:32] [Debug] | bret: true [2024-09-10 07:09:32] [Debug] | Waiting 750 overshoot: 100000 NS [2024-09-10 07:09:33] [Debug] | bret: true [2024-09-10 07:09:33] [Debug] | Waiting 750 overshoot: 88000 NS [2024-09-10 07:09:34] [Debug] | bret: true [2024-09-10 07:09:34] [Debug] | Waiting 750 overshoot: 114500 NS [2024-09-10 07:09:34] [Debug] | bret: true [2024-09-10 07:09:34] [Debug] | Waiting 750 overshoot: 85000 NS [2024-09-10 07:09:35] [Debug] | bret: true [2024-09-10 07:09:35] [Debug] | Waiting 750 overshoot: 133500 NS [2024-09-10 07:09:36] [Debug] | bret: true [2024-09-10 07:09:36] [Debug] | Waiting 750 overshoot: 137600 NS [2024-09-10 07:09:36] [Debug] | bret: true [2024-09-10 07:09:36] [Debug] | Waiting 750 overshoot: 111800 NS [2024-09-10 07:09:37] [Debug] | bret: true [2024-09-10 07:09:37] [Debug] | Waiting 750 overshoot: 103100 NS [2024-09-10 07:09:38] [Debug] | bret: true [2024-09-10 07:09:38] [Debug] | Waiting 750 overshoot: 132100 NS [2024-09-10 07:09:39] [Debug] | bret: true [2024-09-10 07:09:39] [Debug] | Waiting 750 overshoot: 87900 NS [2024-09-10 07:09:39] [Debug] | bret: true [2024-09-10 07:09:39] [Debug] | Waiting 750 overshoot: 105000 NS [2024-09-10 07:09:40] [Debug] | Waiting 250 overshoot: 59100 NS [2024-09-10 07:09:40] [Debug] | Waiting 250 overshoot: 95000 NS [2024-09-10 07:09:40] [Debug] | Waiting 250 overshoot: 116100 NS [2024-09-10 07:09:40] [Debug] | Waiting 250 overshoot: 111600 NS [2024-09-10 07:09:41] [Debug] | Waiting 250 overshoot: 46600 NS [2024-09-10 07:09:41] [Debug] | Waiting 250 overshoot: 82300 NS [2024-09-10 07:09:41] [Debug] | Waiting 250 overshoot: 84700 NS [2024-09-10 07:09:41] [Debug] | Waiting 250 overshoot: 77400 NS [2024-09-10 07:09:42] [Debug] | Waiting 250 overshoot: 56500 NS [2024-09-10 07:09:42] [Debug] | Waiting 250 overshoot: 88500 NS [2024-09-10 07:09:42] [Debug] | Waiting 250 overshoot: 67100 NS [2024-09-10 07:09:42] [Debug] | Waiting 250 overshoot: 69200 NS [2024-09-10 07:09:43] [Debug] | Waiting 250 overshoot: 52500 NS [2024-09-10 07:09:43] [Debug] | Waiting 250 overshoot: 87300 NS [2024-09-10 07:09:43] [Debug] | Waiting 250 overshoot: 66600 NS [2024-09-10 07:09:43] [Debug] | Waiting 250 overshoot: 83700 NS [2024-09-10 07:09:44] [Debug] | Waiting 250 overshoot: 79700 NS [2024-09-10 07:09:44] [Debug] | Waiting 250 overshoot: 60300 NS [2024-09-10 07:09:44] [Debug] | Waiting 250 overshoot: 116800 NS [2024-09-10 07:09:44] [Debug] | Waiting 250 overshoot: 80500 NS [2024-09-10 07:09:46] [Debug] | Waiting 1250 overshoot: 75800 NS [2024-09-10 07:09:47] [Debug] | Waiting 1250 overshoot: 87500 NS [2024-09-10 07:09:48] [Debug] | Waiting 1250 overshoot: 5367700 NS [2024-09-10 07:09:49] [Debug] | Waiting 1250 overshoot: 103200 NS [2024-09-10 07:09:51] [Debug] | Waiting 1250 overshoot: 7424400 NS [2024-09-10 07:09:52] [Debug] | Waiting 1250 overshoot: 5281800 NS [2024-09-10 07:09:53] [Debug] | Waiting 1250 overshoot: 5673100 NS [2024-09-10 07:09:54] [Debug] | Waiting 1250 overshoot: 10185700 NS [2024-09-10 07:09:55] [Debug] | Waiting 1250 overshoot: 12369200 NS [2024-09-10 07:09:57] [Debug] | Waiting 1250 overshoot: 75800 NS [2024-09-10 07:09:58] [Debug] | Waiting 1250 overshoot: 96900 NS [2024-09-10 07:09:59] [Debug] | Waiting 1250 overshoot: 3663000 NS [2024-09-10 07:10:00] [Debug] | Waiting 1250 overshoot: 11713900 NS [2024-09-10 07:10:02] [Debug] | Waiting 1250 overshoot: 138500 NS [2024-09-10 07:10:03] [Debug] | Waiting 1250 overshoot: 9764800 NS [2024-09-10 07:10:04] [Debug] | Waiting 1250 overshoot: 8398700 NS [2024-09-10 07:10:05] [Debug] | Waiting 1250 overshoot: 8862000 NS [2024-09-10 07:10:07] [Debug] | Waiting 1250 overshoot: 3616900 NS [2024-09-10 07:10:08] [Debug] | Waiting 1250 overshoot: 6343400 NS [2024-09-10 07:10:09] [Debug] | Waiting 1250 overshoot: 9492100 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 111900 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 115700 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 137100 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 135000 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 219300 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 127700 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 87900 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 862200 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 107200 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 80000 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 69800 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 230000 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 72400 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 67100 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 89000 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 80400 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 73200 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 58100 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 64100 NS [2024-09-10 07:10:09] [Debug] | Waiting 5 overshoot: 55700 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 75100 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 59900 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 56100 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 57300 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 141700 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 1089800 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 183100 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 328500 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 80200 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 72200 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 74800 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 67900 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 74000 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 65400 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 83400 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 85500 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 74600 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 73200 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 79300 NS [2024-09-10 07:10:09] [Debug] | Waiting 10 overshoot: 74100 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 77800 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 93200 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 71000 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 71300 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 80700 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 90700 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 95200 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 81500 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 79300 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 90600 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 104000 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 99400 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 89600 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 106500 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 107800 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 104300 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 105300 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 103900 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 72900 NS [2024-09-10 07:10:09] [Debug] | Waiting 1 overshoot: 112300 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 109600 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 112800 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 75700 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 103900 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 104800 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 109600 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 126700 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 110700 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 108500 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 96900 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 111200 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 118800 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 115800 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 137200 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 65200 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 233800 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 106300 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 126500 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 105100 NS [2024-09-10 07:10:09] [Debug] | Waiting 2 overshoot: 104600 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 106300 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 107200 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 107000 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 102300 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 97600 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 95800 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 104800 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 115900 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 104900 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 114200 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 108900 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 117400 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 106400 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 118400 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 348300 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 113300 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 125600 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 111800 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 106300 NS [2024-09-10 07:10:09] [Debug] | Waiting .6 overshoot: 106700 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 108000 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 82100 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 116500 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 96500 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 99100 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 78000 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 87500 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 103100 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 99100 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 114000 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 87800 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 101600 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 89300 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 76100 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 75700 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 75900 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 90200 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 94700 NS [2024-09-10 07:10:09] [Debug] | Waiting .3 overshoot: 88000 NS ----------------------------------------------------------------- [2024-09-10 07:16:32] [Debug] | bret: true [2024-09-10 07:16:32] [Debug] | Waiting 750 overshoot: 65200 NS [2024-09-10 07:16:33] [Debug] | bret: true [2024-09-10 07:16:33] [Debug] | Waiting 750 overshoot: 73900 NS [2024-09-10 07:16:34] [Debug] | bret: true [2024-09-10 07:16:34] [Debug] | Waiting 750 overshoot: 66800 NS [2024-09-10 07:16:34] [Debug] | bret: true [2024-09-10 07:16:34] [Debug] | Waiting 750 overshoot: 63800 NS [2024-09-10 07:16:35] [Debug] | bret: true [2024-09-10 07:16:35] [Debug] | Waiting 750 overshoot: 84200 NS [2024-09-10 07:16:36] [Debug] | bret: true [2024-09-10 07:16:36] [Debug] | Waiting 750 overshoot: 138500 NS [2024-09-10 07:16:37] [Debug] | bret: true [2024-09-10 07:16:37] [Debug] | Waiting 750 overshoot: 85000 NS [2024-09-10 07:16:37] [Debug] | bret: true [2024-09-10 07:16:37] [Debug] | Waiting 750 overshoot: 71900 NS [2024-09-10 07:16:38] [Debug] | bret: true [2024-09-10 07:16:38] [Debug] | Waiting 750 overshoot: 81400 NS [2024-09-10 07:16:39] [Debug] | bret: true [2024-09-10 07:16:39] [Debug] | Waiting 750 overshoot: 65600 NS [2024-09-10 07:16:40] [Debug] | bret: true [2024-09-10 07:16:40] [Debug] | Waiting 750 overshoot: 60400 NS [2024-09-10 07:16:40] [Debug] | bret: true [2024-09-10 07:16:40] [Debug] | Waiting 750 overshoot: 77400 NS [2024-09-10 07:16:41] [Debug] | bret: true [2024-09-10 07:16:41] [Debug] | Waiting 750 overshoot: 81500 NS [2024-09-10 07:16:42] [Debug] | bret: true [2024-09-10 07:16:42] [Debug] | Waiting 750 overshoot: 91600 NS [2024-09-10 07:16:43] [Debug] | bret: true [2024-09-10 07:16:43] [Debug] | Waiting 750 overshoot: 148500 NS [2024-09-10 07:16:43] [Debug] | bret: true [2024-09-10 07:16:43] [Debug] | Waiting 750 overshoot: 75600 NS [2024-09-10 07:16:44] [Debug] | bret: true [2024-09-10 07:16:44] [Debug] | Waiting 750 overshoot: 112200 NS [2024-09-10 07:16:45] [Debug] | bret: true [2024-09-10 07:16:45] [Debug] | Waiting 750 overshoot: 102700 NS [2024-09-10 07:16:46] [Debug] | bret: true [2024-09-10 07:16:46] [Debug] | Waiting 750 overshoot: 103700 NS [2024-09-10 07:16:46] [Debug] | Waiting 250 overshoot: 96700 NS [2024-09-10 07:16:46] [Debug] | Waiting 250 overshoot: 101500 NS [2024-09-10 07:16:46] [Debug] | Waiting 250 overshoot: 59100 NS [2024-09-10 07:16:47] [Debug] | Waiting 250 overshoot: 73500 NS [2024-09-10 07:16:47] [Debug] | Waiting 250 overshoot: 89700 NS [2024-09-10 07:16:47] [Debug] | Waiting 250 overshoot: 65900 NS [2024-09-10 07:16:47] [Debug] | Waiting 250 overshoot: 53600 NS [2024-09-10 07:16:48] [Debug] | Waiting 250 overshoot: 117200 NS [2024-09-10 07:16:48] [Debug] | Waiting 250 overshoot: 133600 NS [2024-09-10 07:16:48] [Debug] | Waiting 250 overshoot: 65700 NS [2024-09-10 07:16:48] [Debug] | Waiting 250 overshoot: 60900 NS [2024-09-10 07:16:49] [Debug] | Waiting 250 overshoot: 76400 NS [2024-09-10 07:16:49] [Debug] | Waiting 250 overshoot: 77000 NS [2024-09-10 07:16:49] [Debug] | Waiting 250 overshoot: 115700 NS [2024-09-10 07:16:49] [Debug] | Waiting 250 overshoot: 45000 NS [2024-09-10 07:16:50] [Debug] | Waiting 250 overshoot: 73000 NS [2024-09-10 07:16:50] [Debug] | Waiting 250 overshoot: 75400 NS [2024-09-10 07:16:50] [Debug] | Waiting 250 overshoot: 95300 NS [2024-09-10 07:16:50] [Debug] | Waiting 250 overshoot: 164200 NS [2024-09-10 07:16:51] [Debug] | Waiting 250 overshoot: 97600 NS [2024-09-10 07:16:52] [Debug] | Waiting 1250 overshoot: 274900 NS [2024-09-10 07:16:53] [Debug] | Waiting 1250 overshoot: 121300 NS [2024-09-10 07:16:54] [Debug] | Waiting 1250 overshoot: 61100 NS [2024-09-10 07:16:55] [Debug] | Waiting 1250 overshoot: 172200 NS [2024-09-10 07:16:57] [Debug] | Waiting 1250 overshoot: 75700 NS [2024-09-10 07:16:58] [Debug] | Waiting 1250 overshoot: 218500 NS [2024-09-10 07:16:59] [Debug] | Waiting 1250 overshoot: 172700 NS [2024-09-10 07:17:00] [Debug] | Waiting 1250 overshoot: 87200 NS [2024-09-10 07:17:02] [Debug] | Waiting 1250 overshoot: 197300 NS [2024-09-10 07:17:03] [Debug] | Waiting 1250 overshoot: 213600 NS [2024-09-10 07:17:04] [Debug] | Waiting 1250 overshoot: 388600 NS [2024-09-10 07:17:05] [Debug] | Waiting 1250 overshoot: 85200 NS [2024-09-10 07:17:07] [Debug] | Waiting 1250 overshoot: 91900 NS [2024-09-10 07:17:08] [Debug] | Waiting 1250 overshoot: 176100 NS [2024-09-10 07:17:09] [Debug] | Waiting 1250 overshoot: 7844400 NS [2024-09-10 07:17:10] [Debug] | Waiting 1250 overshoot: 145600 NS [2024-09-10 07:17:11] [Debug] | Waiting 1250 overshoot: 61100 NS [2024-09-10 07:17:13] [Debug] | Waiting 1250 overshoot: 94400 NS [2024-09-10 07:17:14] [Debug] | Waiting 1250 overshoot: 94400 NS [2024-09-10 07:17:15] [Debug] | Waiting 1250 overshoot: 101800 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 81100 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 96800 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 97500 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 43600 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 60000 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 62400 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 74500 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 96600 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 93800 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 74500 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 87900 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 102600 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 61600 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 55200 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 57200 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 83600 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 53300 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 56000 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 58900 NS [2024-09-10 07:17:15] [Debug] | Waiting 5 overshoot: 91000 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 96500 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 51900 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 322800 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 82600 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 140300 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 334400 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 317200 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 110800 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 318200 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 102800 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 141000 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 84000 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 190100 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 69100 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 104300 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 84500 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 123400 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 77500 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 57300 NS [2024-09-10 07:17:15] [Debug] | Waiting 10 overshoot: 59000 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 41000 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 31900 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 86100 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 54100 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 201000 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 43800 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 47300 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 62900 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 56000 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 58700 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 40900 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 55800 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 57500 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 33900 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 39100 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 40500 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 40100 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 65400 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 77500 NS [2024-09-10 07:17:15] [Debug] | Waiting 1 overshoot: 27000 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 57700 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 50100 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 63100 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 62400 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 74200 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 59000 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 39000 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 56700 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 67200 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 445400 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 60900 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 46600 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 48800 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 39400 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 35000 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 52400 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 41100 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 38000 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 36000 NS [2024-09-10 07:17:15] [Debug] | Waiting 2 overshoot: 41400 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 36800 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 36900 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 30400 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 61000 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 36800 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 48700 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 30000 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 31400 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 41100 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 25700 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 37900 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 36700 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 31300 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 30700 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 27600 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 29200 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 28600 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 28800 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 47200 NS [2024-09-10 07:17:15] [Debug] | Waiting .6 overshoot: 28300 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 28900 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 29700 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 28700 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 28000 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 27400 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 28100 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 26100 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 28100 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 28000 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 29200 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 29700 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 29300 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 27100 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 26600 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 28100 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 28200 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 27300 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 27400 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 30100 NS [2024-09-10 07:17:15] [Debug] | Waiting .3 overshoot: 35100 NS
248 lines
10 KiB
C++
248 lines
10 KiB
C++
/***
|
|
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
File: AuSleep.cpp
|
|
Date: 2021-6-12
|
|
Author: Reece
|
|
***/
|
|
#include <Source/RuntimeInternal.hpp>
|
|
#include "AuSleep.hpp"
|
|
#include "AuWaitFor.hpp"
|
|
|
|
#if defined(AURORA_IS_POSIX_DERIVED)
|
|
#include <unistd.h>
|
|
#endif
|
|
|
|
#if defined(AURORA_IS_MODERNNT_DERIVED)
|
|
#include <Source/Time/Time.hpp>
|
|
#include <Source/Threading/Primitives/SMTYield.hpp>
|
|
#endif
|
|
|
|
namespace Aurora::Threading
|
|
{
|
|
AUKN_SYM void Sleep(AuUInt64 qwTimeout)
|
|
{
|
|
#if defined(AURORA_IS_MODERNNT_DERIVED)
|
|
::Sleep(qwTimeout);
|
|
#else
|
|
SleepNs(AuMSToNS<AuUInt64>(qwTimeout));
|
|
#endif
|
|
}
|
|
|
|
AUKN_SYM void SleepNs(AuUInt64 qwTimeout)
|
|
{
|
|
#if defined(AURORA_IS_LINUX_DERIVED) || defined(AURORA_IS_BSD_DERIVED)
|
|
|
|
auto qwEndTime = AuTime::SteadyClockNS() + qwTimeout;
|
|
if (auto uSleepMnSec = qwTimeout / 1000)
|
|
{
|
|
if ((usleep(uSleepMnSec) == -1) &&
|
|
(errno == EINTR))
|
|
{
|
|
AuUInt64 qwNow;
|
|
|
|
while ((qwNow = AuTime::SteadyClockNS()) < qwEndTime)
|
|
{
|
|
if (auto uSleepMnSec = (qwEndTime - qwNow) / 1000)
|
|
{
|
|
usleep(uSleepMnSec);
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#else
|
|
|
|
#if defined(AURORA_IS_MODERNNT_DERIVED)
|
|
|
|
if (pNtDelayExecution)
|
|
{
|
|
auto uEndTimeSteadyNS = AuTime::SteadyClockNS() + qwTimeout;
|
|
auto uEndTimeSteadyNS2 = uEndTimeSteadyNS;
|
|
|
|
#if defined(_AURORA_WANT_STRICT_NT_WAKEUP_TIME_NO_WALL_CLOCK_SHIFT_ALLOWED)
|
|
auto uEndTimeWall = AuTime::CurrentClockNS() + qwTimeout;
|
|
auto uTargetTimeNt = AuTime::ConvertTimestampNs(uEndTimeWall);
|
|
|
|
Win32DropSchedulerResolution();
|
|
#else
|
|
if (!AuSwInfo::IsWindows8Point1OrGreater())
|
|
{
|
|
if (qwTimeout < 500000)
|
|
{
|
|
uEndTimeSteadyNS -= 10'000ull;
|
|
|
|
(void)YieldPollNs(true, uEndTimeSteadyNS, [=]()
|
|
{
|
|
return false;
|
|
});
|
|
|
|
return;
|
|
}
|
|
|
|
if (qwTimeout > AuMSToNS<AuUInt64>(60))
|
|
{
|
|
uEndTimeSteadyNS -= 20'000'000ull;
|
|
}
|
|
else if (qwTimeout > AuMSToNS<AuUInt64>(40))
|
|
{
|
|
uEndTimeSteadyNS -= 10'000'000ull;
|
|
}
|
|
else if (qwTimeout > AuMSToNS<AuUInt64>(10))
|
|
{
|
|
uEndTimeSteadyNS -= 4'000'000ull;
|
|
}
|
|
else if (qwTimeout < AuMSToNS<AuUInt64>(1'300))
|
|
{
|
|
uEndTimeSteadyNS -= 500'000ull;
|
|
}
|
|
|
|
Win32DropSchedulerResolution();
|
|
}
|
|
else
|
|
{
|
|
if (qwTimeout < AuMSToNS<AuUInt64>(1))
|
|
{
|
|
uEndTimeSteadyNS -= 250'000ull;
|
|
}
|
|
}
|
|
#endif
|
|
|
|
AuUInt64 uNowNS {};
|
|
while ((uNowNS = AuTime::SteadyClockNS()) < uEndTimeSteadyNS2)
|
|
{
|
|
LARGE_INTEGER word;
|
|
#if defined(_AURORA_WANT_STRICT_NT_WAKEUP_TIME_NO_WALL_CLOCK_SHIFT_ALLOWED)
|
|
word.QuadPart = uTargetTimeNt;
|
|
#else
|
|
if (AuThreadPrimitives::ThrdCfg::gPlatformIsSMPProcessorOptimized)
|
|
{
|
|
if (uEndTimeSteadyNS2 - uNowNS <= 230000ull)
|
|
{
|
|
auto uNow = AuAtomicAdd(&AuThreadPrimitives::gSpinAdaptiveCurrentCount, 1u);
|
|
if (!AuThreadPrimitives::gSpinAdaptiveThreshold || uNow <= AuThreadPrimitives::gSpinAdaptiveThreshold)
|
|
{
|
|
#if (defined(AURORA_ARCH_X64) || defined(AURORA_ARCH_X86))
|
|
if (AuThreadPrimitives::ThrdCfg::gIsIntelAlderLakeOrGreater)
|
|
{
|
|
_tpause(0, __rdtsc() + 10000);
|
|
}
|
|
else
|
|
#endif
|
|
{
|
|
#if 0
|
|
for (AU_ITERATE_N(i, 32))
|
|
{
|
|
AuThreadPrimitives::SMPPause();
|
|
}
|
|
#else
|
|
// shit compiler wont unwrap
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
// 32 or 16?
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
#endif
|
|
}
|
|
|
|
AuAtomicSub(&AuThreadPrimitives::gSpinAdaptiveCurrentCount, 1u);
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
AuAtomicSub(&AuThreadPrimitives::gSpinAdaptiveCurrentCount, 1u);
|
|
}
|
|
}
|
|
}
|
|
|
|
AuSInt sDelta1 = uEndTimeSteadyNS - uNowNS;
|
|
word.QuadPart = 0;
|
|
if (sDelta1 > 0)
|
|
{
|
|
word.QuadPart = -(sDelta1 / 100ull);
|
|
}
|
|
|
|
if (!word.QuadPart)
|
|
{
|
|
if (AuThreadPrimitives::ThrdCfg::gPlatformIsSMPProcessorOptimized)
|
|
{
|
|
auto uNow = AuAtomicAdd(&AuThreadPrimitives::gSpinAdaptiveCurrentCount, 1u);
|
|
if (!AuThreadPrimitives::gSpinAdaptiveThreshold || uNow <= AuThreadPrimitives::gSpinAdaptiveThreshold)
|
|
{
|
|
#if (defined(AURORA_ARCH_X64) || defined(AURORA_ARCH_X86))
|
|
if (AuThreadPrimitives::ThrdCfg::gIsIntelAlderLakeOrGreater)
|
|
{
|
|
_tpause(0, __rdtsc() + 1000);
|
|
}
|
|
else
|
|
#endif
|
|
{
|
|
#if 0
|
|
for (AU_ITERATE_N(i, 32))
|
|
{
|
|
AuThreadPrimitives::SMPPause();
|
|
}
|
|
#else
|
|
// shit compiler wont unwrap
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
// 32 or 16?
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause(); AuThreadPrimitives::SMPPause();
|
|
#endif
|
|
}
|
|
|
|
AuAtomicSub(&AuThreadPrimitives::gSpinAdaptiveCurrentCount, 1u);
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
AuAtomicSub(&AuThreadPrimitives::gSpinAdaptiveCurrentCount, 1u);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!uEndTimeSteadyNS)
|
|
{
|
|
ContextYield();
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
pNtDelayExecution(FALSE, &word);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
#endif
|
|
|
|
auto status = YieldPollNs(true, qwTimeout + Time::SteadyClockNS(), [=]()
|
|
{
|
|
return false;
|
|
});
|
|
#endif
|
|
}
|
|
|
|
void InitSleep()
|
|
{
|
|
// ...
|
|
}
|
|
} |