Найти ошибку в чужом Delphi-юните ("System error")
Сторонний разработчик написал юнит по подсчёту нагрузки на CPU каждого потока приложения - "threadsTiming"
Через некоторое время работы возникает ошибка "System error. Code: 5 - Отказано в доступе". Сам разработчик юнита сейчас недоступен, а решить баг нужно, и желательно срочно.
Исполнителю данный юнит будет выдан на анализ. Сможете его ещё и улучшить, оптимизировать - Вам + в отзыв и + в денежном эквиваленте.
Скрин сообщения об ошибке прилагается. Конечно, так баг найти сложнее, чем привлечь непосредственно разработчика юнита - но может Вы сталкивались с подобным и знаете решение проблемы :)
В юните используются функции:
function OpenThread(Access:dword;Inherit:dword;Id:dword):cardinal; stdcall;external 'kernel32.DLL';
function GetThreadIOPendingFlag(H:cardinal;var isPending:dword):cardinal; stdcall;external 'kernel32.DLL';
function GetSystemTimes(var IdleTime:int64;var KernelTime:int64;var UserTime:int64):cardinal;stdcall;external 'kernel32.DLL';
function GetProcessTimes(ProcId:cardinal;var CreateTime:int64;var ExitTime:int64;var KernelTime:int64;var UserTime:int64):cardinal;stdcall;external 'kernel32.DLL';
function GetThreadTimes(ThreadId:cardinal;var CreateTime:int64;var ExitTime:int64;var KernelTime:int64;var UserTime:int64):cardinal;stdcall;external 'kernel32.DLL';
Только профессионалам!