PascalCoin Forum

PascalCoin => Development & Technical Discussion => Topic started by: Skybuck on January 27, 2022, 01:30:53 PM

Title: Possible exceptions and deadlocks in UThread.pas
Post by: Skybuck on January 27, 2022, 01:30:53 PM
Possible problem code see below:

initialization
_threads := TPCThreadList.Create('GLOBAL_THREADS');
finalization
FreeAndNil(_threads);
end.

Release:
"
This function can raise EXCEPTION_POSSIBLE_DEADLOCK if a wait operation on the critical section times out. The timeout interval is specified by the following registry value: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\CriticalSectionTimeout. Do not handle a possible deadlock exception; instead, debug the application.

If a critical section is deleted while it is still owned, the state of the threads waiting for ownership of the deleted critical section is undefined.

While a process is exiting, if a call to EnterCriticalSection would block, it will instead terminate the process immediately. This may cause global destructors to not be called.

""