Overview
| Comment: | Fix releasing semaphore stored in free'd memory |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
903b3326e2d32f54693d9f244c43a89d |
| User & Date: | js on 2020-06-14 15:32:53 |
| Other Links: | manifest | tags |
Context
|
2020-06-14
| ||
| 15:50 | Add a function wrapper for threads on Windows (check-in: e342aa8358 user: js tags: trunk) | |
| 15:32 | Fix releasing semaphore stored in free'd memory (check-in: 903b3326e2 user: js tags: trunk) | |
| 15:30 | Make threads work on Windows 98 (check-in: e16590dcb7 user: js tags: trunk) | |
Changes
Modified src/platform/amiga/thread.m from [7b264a994b] to [de7e15e20a].
| ︙ | ︙ | |||
164 165 166 167 168 169 170 |
return of_tlskey_get(threadKey);
}
bool
of_thread_join(of_thread_t thread)
{
ObtainSemaphore(&thread->semaphore);
| | | > > | | | > | 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 |
return of_tlskey_get(threadKey);
}
bool
of_thread_join(of_thread_t thread)
{
ObtainSemaphore(&thread->semaphore);
if (thread->done) {
ReleaseSemaphore(&thread->semaphore);
free(thread);
return true;
}
@try {
if (thread->detached || thread->joinTask != NULL) {
errno = EINVAL;
return false;
}
if ((thread->joinSigBit = AllocSignal(-1)) == -1) {
errno = EAGAIN;
|
| ︙ | ︙ |