4887 %} |
4887 %} |
4888 ! |
4888 ! |
4889 |
4889 |
4890 millisecondDelay:millis |
4890 millisecondDelay:millis |
4891 "delay execution for millis milliseconds or until the next event arrives. |
4891 "delay execution for millis milliseconds or until the next event arrives. |
4892 All lower priority threads will also sleep for the duration, |
4892 All other threads proceed as usual. |
4893 interrupts (and therefore, higher prio processes) are still handled. |
4893 Better use a Delay, however, a delay cannot be used in the event handler or scheduler." |
4894 Better use a Delay, to only delay the calling thread. |
|
4895 (however, a delay cannot be used in the event handler or scheduler)" |
|
4896 |
4894 |
4897 |now then delta| |
4895 |now then delta| |
4898 |
4896 |
4899 now := self getMillisecondTime. |
4897 now := self getMillisecondTime. |
4900 then := self millisecondTimeAdd:now and:millis. |
4898 then := self millisecondTimeAdd:now and:millis. |
4901 |
4899 |
4902 [self millisecondTime:then isAfter:now] whileTrue:[ |
4900 [self millisecondTime:then isAfter:now] whileTrue:[ |
4903 delta := self millisecondTimeDeltaBetween:then and:now. |
4901 delta := self millisecondTimeDeltaBetween:then and:now. |
4904 self selectOnAnyReadable:nil writable:nil exception:nil withTimeOut:delta. |
4902 self selectOnAnyReadable:nil writable:nil exception:nil withTimeOut:delta. |
4905 now := self getMillisecondTime. |
4903 now := self getMillisecondTime. |
4906 ] |
4904 ] |
4907 |
4905 |
4908 " |
4906 " |
4909 OperatingSystem millisecondDelay:2000 |
4907 OperatingSystem millisecondDelay:5000 |
4910 " |
4908 " |
4911 ! |
4909 ! |
4912 |
4910 |
4913 millisecondTime:msTime1 isAfter:msTime2 |
4911 millisecondTime:msTime1 isAfter:msTime2 |
4914 "return true if msTime1 is after msTime2, false if not. |
4912 "return true if msTime1 is after msTime2, false if not. |