diff --git a/compat/posix/src/time.c b/compat/posix/src/time.c index 538a2bf3cedaa228c88b936ab7e022cb305b4e5d..e001336b70521557e729e5e60c36854f4e9f36db 100755 --- a/compat/posix/src/time.c +++ b/compat/posix/src/time.c @@ -586,6 +586,7 @@ typedef struct { static VOID SwtmrProc(UINTPTR tmrArg) { + unsigned int intSave; int sig; pid_t pid; siginfo_t info; @@ -610,7 +611,10 @@ static VOID SwtmrProc(UINTPTR tmrArg) info.si_value.sival_ptr = arg->sigev_value.sival_ptr; /* Send the signal */ + SCHEDULER_LOCK(intSave); OsDispatch(pid, &info, OS_USER_KILL_PERMISSION); + SCHEDULER_UNLOCK(intSave); + return; }