-
Notifications
You must be signed in to change notification settings - Fork 189
Open
Description
Potentially unsafe code:
UCommon.pas:
initialization
MinTimeStampDateTime:= StrToDateTime('1980-01-01 00:00:000', IntlDateTimeFormat);
GMainThreadNotify := TThreadNotify.Create ( TThread.CurrentThread ); // unit initialization runs in main thread
Exception handling code is not yet in place. Both lines of code can be problematic.
If system format for time and date change this may cause a problem with parsing from string to date and time.
Also
finalization
FreeAndNil(GMainThreadNotify);
Could dead lock on waiting and throwing an exception, me wonders if exception handling is still in place for finalization sections:
"
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.
"
Metadata
Metadata
Assignees
Labels
No labels