I pasted the lines I specified and received the following return message: Create WMIObject in thread 21136 Use WMIObject in thread 21136 Maybe you did not paste at the right place. Try the attached script v22. On my machine, I get different thread ids. Create WMIObject in thread 12244 Use WMIObject in thread 18424 The attached script v22 contains also a trap error to stop the ticker in case of fatal error. You can test it by specifying 6 iterations. Without the trap error, the script doesn't terminate,...
Hi Алексей On 30 Jan 2026, at 20:15, Алексей Евгеньевич Тарасов tae@users.sourceforge.net wrote: Please look at this code. On line 67, it crashes with an unknown error. What am I doing wrong? Add these lines: say "Create WMIObject in thread" SysQueryProcess("TID") say "Use WMIObject in thread" SysQueryProcess("TID") You should see different thread ids. Search Google for "OLE exception: Code: 800401f0" CO_E_NOTINITIALIZED (0x800401F0) is a COM/OLE error indicating that CoInitialize has not been called...
The output shows a problem: sometimes isTimer is 0 when it should be 1. It's not a race condition, just a typo in ::method IsTimer. typo: guard on when Answer<>'' | criticalAlarmTriggered=.true fixed: guard on when Answers<>'' | criticalAlarmTriggered=.true Fixed the implementation of Management='EXIT': must exit the loop. Attached: Timer_en_guard-v2.rex
Hello Алексей On 24 Jan 2026, at 15:41, Алексей Евгеньевич Тарасов tae@users.sourceforge.net wrote: Good afternoon! I've finished developing the "Timer" class with parameters that I'm happy with. The "Timer_en.rex" file contains the class code with the testing program. If anyone has any comments, additions, or suggestions, I'd be very grateful. When you create a Timer, you pass milliseconds. Internally, you multiply by 1000 to work with microseconds. Some comments should be fixed to indicate microseconds...
VariableReference::flatten is marking instead of flattening
Hello Алексей On 22 Jan 2026, at 12:25, Алексей Евгеньевич Тарасов tae@users.sourceforge.net wrote: Continuing on this topic. In a related thread, I asked a question about timers. I found Ticker Class, but it seemed a bit complicated. I decided to implement my own class. I was hoping to practice the methodology itself with parallel threads. But I ran into a problem: I can't launch multiple parallel threads. The "start" and "startWith" methods don't allow me to launch more than one thread, and the...
I find this answer to the second question better than the one I tried to explain in my own words: https://chatgpt.com/share/69480f24-59f8-8007-9247-1cd8282cfec2 And that concludes my contribution.
Ah, ok. You use "push" for global overriding. My understanding of "push" was that the caller would push his numeric settings on to a required/called program. yes, sorry for the confusion. The latter, demonstrated with your set of programs, adding "::options noGlobalOverride" to myPackageDigits2.cls: ... This will inhibit breaking the invariant in myPackageDigits2.cls by a global options override. Yes. In addition to Dom's debugger, I think this declaration should be added in * dateParser.cls, because...