ObjFW  Check-in [1ac944d7c1]

Overview
Comment:class_registerAlias_np(): Acquire the global mutex

A plugin which calls it might be loaded while already being
multi-threaded.

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 1ac944d7c1037a2dc39ef2075b8715a209d416bcc4e3ffedc3b8e1ee4ebc5129
User & Date: js on 2019-01-17 21:59:53
Other Links: manifest | tags
Context
2019-01-20
12:13
objfw-config: Change packages format and location check-in: 35779c332c user: js tags: trunk
2019-01-17
21:59
class_registerAlias_np(): Acquire the global mutex check-in: 1ac944d7c1 user: js tags: trunk
2019-01-13
23:39
objfw-compile: Add support for --package check-in: 6a9cca294d user: js tags: trunk
Changes

Modified src/runtime/class.m from [0a53af1b21] to [241b0f4d77].

51
52
53
54
55
56
57


58


59
60

61


62
63
64
65
66
67
68
	if (strcmp(cls->name, "Protocol") != 0)
		classes_cnt++;
}

bool
class_registerAlias_np(Class cls, const char *name)
{


	if (classes == NULL)


		return NO;


	objc_hashtable_set(classes, name, (Class)((uintptr_t)cls | 1));



	return YES;
}

static void
register_selectors(struct objc_abi_class *cls)
{







>
>
|
>
>

|
>

>
>







51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
	if (strcmp(cls->name, "Protocol") != 0)
		classes_cnt++;
}

bool
class_registerAlias_np(Class cls, const char *name)
{
	objc_global_mutex_lock();

	if (classes == NULL) {
		objc_global_mutex_unlock();

		return NO;
	}

	objc_hashtable_set(classes, name, (Class)((uintptr_t)cls | 1));

	objc_global_mutex_unlock();

	return YES;
}

static void
register_selectors(struct objc_abi_class *cls)
{