ObjFW  Check-in [35958b2528]

Overview
Comment:Disallow +[OFThread terminate] on main thread
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 35958b25282d7e7259ec5d9c87d8bbfd6875ee6f527ca170286846ce056c4dff
User & Date: js on 2019-09-01 18:25:13
Other Links: manifest | tags
Context
2019-09-01
18:28
configure: Fix fallback for broken _Thread_local check-in: bdc7c52a44 user: js tags: trunk
18:25
Disallow +[OFThread terminate] on main thread check-in: 35958b2528 user: js tags: trunk
18:22
Add +[OFThread isMainThread] check-in: 8a2fa8eff4 user: js tags: trunk
Changes

Modified src/OFThread.m from [4ed6327174] to [0dae234b3c].

311
312
313
314
315
316
317



318
319
320
321
322
323
324
	OF_UNREACHABLE
}

+ (void)terminateWithObject: (id)object
{
	OFThread *thread = of_tlskey_get(threadSelfKey);




	OF_ENSURE(thread != nil);

	thread->_returnValue = [object retain];
	longjmp(thread->_exitEnv, 1);

	OF_UNREACHABLE
}







>
>
>







311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
	OF_UNREACHABLE
}

+ (void)terminateWithObject: (id)object
{
	OFThread *thread = of_tlskey_get(threadSelfKey);

	if (thread == mainThread)
		@throw [OFInvalidArgumentException exception];

	OF_ENSURE(thread != nil);

	thread->_returnValue = [object retain];
	longjmp(thread->_exitEnv, 1);

	OF_UNREACHABLE
}