Remove needless mutex locks and unlocks

This commit is contained in:
kamkow1
2025-06-28 02:16:42 +02:00
parent 2e70abd0de
commit 48f4a73b0a
4 changed files with 3 additions and 36 deletions

19
baked.c
View File

@ -13,16 +13,6 @@ INCBIN(bundle_zip, "./bundle.zip");
static locked(Baked_Resource *) baked_resources = locked_init(nil); static locked(Baked_Resource *) baked_resources = locked_init(nil);
void lock_baked_resources(void)
{
lockx(&baked_resources);
}
void unlock_baked_resources(void)
{
unlockx(&baked_resources);
}
void add_baked_resource(char *key, const uchar *data, size_t size) void add_baked_resource(char *key, const uchar *data, size_t size)
{ {
int fd = memfd_create(key, 0); int fd = memfd_create(key, 0);
@ -36,8 +26,6 @@ void add_baked_resource(char *key, const uchar *data, size_t size)
void init_baked_resources(void) void init_baked_resources(void)
{ {
lockx(&baked_resources);
struct zip_t *zip = zip_stream_open(bundle_zip_data, bundle_zip_size, BUNDLE_ZIP_COMPRESSION, 'r'); struct zip_t *zip = zip_stream_open(bundle_zip_data, bundle_zip_size, BUNDLE_ZIP_COMPRESSION, 'r');
size_t n = zip_entries_total(zip); size_t n = zip_entries_total(zip);
for (size_t i = 0; i < n; i++) { for (size_t i = 0; i < n; i++) {
@ -53,29 +41,28 @@ void init_baked_resources(void)
zip_entry_close(zip); zip_entry_close(zip);
} }
zip_stream_close(zip); zip_stream_close(zip);
unlockx(&baked_resources);
} }
void free_baked_resources(void) void free_baked_resources(void)
{ {
lockx(&baked_resources);
for (size_t i = 0; i < shlen(baked_resources.value); i++) { for (size_t i = 0; i < shlen(baked_resources.value); i++) {
close(baked_resources.value[i].value.memfd); close(baked_resources.value[i].value.memfd);
free(baked_resources.value[i].key); free(baked_resources.value[i].key);
free(baked_resources.value[i].value.bufptr); free(baked_resources.value[i].value.bufptr);
} }
shfree(baked_resources.value); shfree(baked_resources.value);
unlockx(&baked_resources);
} }
bool get_baked_resource_path(char *key, char *buf, size_t size) bool get_baked_resource_path(char *key, char *buf, size_t size)
{ {
lockx(&baked_resources);
if (shgeti(baked_resources.value, key) != -1) { if (shgeti(baked_resources.value, key) != -1) {
Baked_Resource_Value brv = shget(baked_resources.value, key); Baked_Resource_Value brv = shget(baked_resources.value, key);
snprintf(buf, size, "/proc/%d/fd/%d", getpid(), brv.memfd); snprintf(buf, size, "/proc/%d/fd/%d", getpid(), brv.memfd);
unlockx(&baked_resources);
return true; return true;
} }
unlockx(&baked_resources);
return false; return false;
} }

View File

@ -15,7 +15,5 @@ void init_baked_resources(void);
void free_baked_resources(void); void free_baked_resources(void);
bool get_baked_resource_path(char *key, char *buf, size_t size); bool get_baked_resource_path(char *key, char *buf, size_t size);
void baked_resource_each(void (*f)(Baked_Resource *resource, void *udata), void *udata); void baked_resource_each(void (*f)(Baked_Resource *resource, void *udata), void *udata);
void lock_baked_resources(void);
void unlock_baked_resources(void);
#endif // BAKED_H_ #endif // BAKED_H_

10
main.c
View File

@ -157,7 +157,6 @@ void route_hashtable_put_blogs(Baked_Resource *resource, void *udata)
void init_route_hashtable(void) void init_route_hashtable(void)
{ {
lockx(&route_hashtable);
shdefault(route_hashtable.value, &route_page_not_found); shdefault(route_hashtable.value, &route_page_not_found);
shput(route_hashtable.value, clonestr_alloc(&default_allocator, "/"), &route_home); shput(route_hashtable.value, clonestr_alloc(&default_allocator, "/"), &route_home);
shput(route_hashtable.value, clonestr_alloc(&default_allocator, "/page-missing"), &route_page_not_found); shput(route_hashtable.value, clonestr_alloc(&default_allocator, "/page-missing"), &route_page_not_found);
@ -167,17 +166,14 @@ void init_route_hashtable(void)
#endif #endif
baked_resource_each(&route_hashtable_put_blogs, nil); baked_resource_each(&route_hashtable_put_blogs, nil);
unlockx(&route_hashtable);
} }
void free_route_hashtable(void) void free_route_hashtable(void)
{ {
lockx(&route_hashtable);
for (size_t i = 0; i < shlen(route_hashtable.value); i++) { for (size_t i = 0; i < shlen(route_hashtable.value); i++) {
free(route_hashtable.value[i].key); free(route_hashtable.value[i].key);
} }
shfree(route_hashtable.value); shfree(route_hashtable.value);
unlockx(&route_hashtable);
} }
char *init_baked_dump(void) char *init_baked_dump(void)
@ -261,9 +257,7 @@ void copy_baked_resources_to_baked_dump(Baked_Resource *resource, void *udata)
void populate_baked_dump(char *baked_dump) void populate_baked_dump(char *baked_dump)
{ {
lock_baked_resources();
baked_resource_each(&copy_baked_resources_to_baked_dump, baked_dump); baked_resource_each(&copy_baked_resources_to_baked_dump, baked_dump);
unlock_baked_resources();
} }
volatile sig_atomic_t alive = true; volatile sig_atomic_t alive = true;
@ -281,12 +275,10 @@ int main(int argc, char ** argv)
start_timer(); start_timer();
init_baked_resources(); init_baked_resources();
lockx(&baked_dump_path);
if ((baked_dump_path.value = init_baked_dump()) == nil) { if ((baked_dump_path.value = init_baked_dump()) == nil) {
return 1; return 1;
} }
populate_baked_dump(baked_dump_path.value); populate_baked_dump(baked_dump_path.value);
unlockx(&baked_dump_path);
mg_log_set(MG_LL_DEBUG); mg_log_set(MG_LL_DEBUG);
struct mg_mgr mgr; struct mg_mgr mgr;
@ -304,9 +296,7 @@ int main(int argc, char ** argv)
mg_mgr_free(&mgr); mg_mgr_free(&mgr);
lockx(&baked_dump_path);
free_baked_dump(baked_dump_path.value); free_baked_dump(baked_dump_path.value);
unlockx(&baked_dump_path);
free_baked_resources(); free_baked_resources();
return 0; return 0;

View File

@ -95,8 +95,6 @@ void route_build_id(Allocator *alloc, struct mg_http_message *msg, Route_Result
void route_page_not_found(Allocator *alloc, struct mg_http_message *msg, Route_Result *result, void *context_data) void route_page_not_found(Allocator *alloc, struct mg_http_message *msg, Route_Result *result, void *context_data)
{ {
lock_baked_resources();
defer { unlock_baked_resources(); }
NString_List env = {0}; NString_List env = {0};
list_append_alloc(alloc, &env, clonestr_alloc(alloc, fmt("-DURL=%.*s", msg->uri.len, msg->uri.buf))); list_append_alloc(alloc, &env, clonestr_alloc(alloc, fmt("-DURL=%.*s", msg->uri.len, msg->uri.buf)));
@ -132,8 +130,6 @@ void route_page_not_found(Allocator *alloc, struct mg_http_message *msg, Route_R
void route_home(Allocator *alloc, struct mg_http_message *msg, Route_Result *result, void *context_data) void route_home(Allocator *alloc, struct mg_http_message *msg, Route_Result *result, void *context_data)
{ {
lock_baked_resources();
defer { unlock_baked_resources(); }
NString_List env = {0}; NString_List env = {0};
String_Builder out = {0}; String_Builder out = {0};
@ -167,8 +163,6 @@ void route_home(Allocator *alloc, struct mg_http_message *msg, Route_Result *res
void route_generic_blog(Allocator *alloc, struct mg_http_message *msg, Route_Result *result, void *context_data) void route_generic_blog(Allocator *alloc, struct mg_http_message *msg, Route_Result *result, void *context_data)
{ {
lock_baked_resources();
defer { unlock_baked_resources(); }
NString_List env = {0}; NString_List env = {0};
String_Builder out = {0}; String_Builder out = {0};
@ -253,8 +247,6 @@ void collect_blogs(Baked_Resource *resource, void *udata)
void route_blog(Allocator *alloc, struct mg_http_message *msg, Route_Result *result, void *context_data) void route_blog(Allocator *alloc, struct mg_http_message *msg, Route_Result *result, void *context_data)
{ {
lock_baked_resources();
defer { unlock_baked_resources(); }
NString_List env = {0}; NString_List env = {0};
String_Builder out = {0}; String_Builder out = {0};