Remove needless mutex locks and unlocks
This commit is contained in:
19
baked.c
19
baked.c
@ -13,16 +13,6 @@ INCBIN(bundle_zip, "./bundle.zip");
|
||||
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
lockx(&baked_resources);
|
||||
|
||||
struct zip_t *zip = zip_stream_open(bundle_zip_data, bundle_zip_size, BUNDLE_ZIP_COMPRESSION, 'r');
|
||||
size_t n = zip_entries_total(zip);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
@ -53,29 +41,28 @@ void init_baked_resources(void)
|
||||
zip_entry_close(zip);
|
||||
}
|
||||
zip_stream_close(zip);
|
||||
|
||||
unlockx(&baked_resources);
|
||||
}
|
||||
|
||||
void free_baked_resources(void)
|
||||
{
|
||||
lockx(&baked_resources);
|
||||
for (size_t i = 0; i < shlen(baked_resources.value); i++) {
|
||||
close(baked_resources.value[i].value.memfd);
|
||||
free(baked_resources.value[i].key);
|
||||
free(baked_resources.value[i].value.bufptr);
|
||||
}
|
||||
shfree(baked_resources.value);
|
||||
unlockx(&baked_resources);
|
||||
}
|
||||
|
||||
bool get_baked_resource_path(char *key, char *buf, size_t size)
|
||||
{
|
||||
lockx(&baked_resources);
|
||||
if (shgeti(baked_resources.value, key) != -1) {
|
||||
Baked_Resource_Value brv = shget(baked_resources.value, key);
|
||||
snprintf(buf, size, "/proc/%d/fd/%d", getpid(), brv.memfd);
|
||||
unlockx(&baked_resources);
|
||||
return true;
|
||||
}
|
||||
unlockx(&baked_resources);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
2
baked.h
2
baked.h
@ -15,7 +15,5 @@ void init_baked_resources(void);
|
||||
void free_baked_resources(void);
|
||||
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 lock_baked_resources(void);
|
||||
void unlock_baked_resources(void);
|
||||
|
||||
#endif // BAKED_H_
|
||||
|
10
main.c
10
main.c
@ -157,7 +157,6 @@ void route_hashtable_put_blogs(Baked_Resource *resource, void *udata)
|
||||
|
||||
void init_route_hashtable(void)
|
||||
{
|
||||
lockx(&route_hashtable);
|
||||
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, "/page-missing"), &route_page_not_found);
|
||||
@ -167,17 +166,14 @@ void init_route_hashtable(void)
|
||||
#endif
|
||||
|
||||
baked_resource_each(&route_hashtable_put_blogs, nil);
|
||||
unlockx(&route_hashtable);
|
||||
}
|
||||
|
||||
void free_route_hashtable(void)
|
||||
{
|
||||
lockx(&route_hashtable);
|
||||
for (size_t i = 0; i < shlen(route_hashtable.value); i++) {
|
||||
free(route_hashtable.value[i].key);
|
||||
}
|
||||
shfree(route_hashtable.value);
|
||||
unlockx(&route_hashtable);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
lock_baked_resources();
|
||||
baked_resource_each(©_baked_resources_to_baked_dump, baked_dump);
|
||||
unlock_baked_resources();
|
||||
}
|
||||
|
||||
volatile sig_atomic_t alive = true;
|
||||
@ -281,12 +275,10 @@ int main(int argc, char ** argv)
|
||||
start_timer();
|
||||
|
||||
init_baked_resources();
|
||||
lockx(&baked_dump_path);
|
||||
if ((baked_dump_path.value = init_baked_dump()) == nil) {
|
||||
return 1;
|
||||
}
|
||||
populate_baked_dump(baked_dump_path.value);
|
||||
unlockx(&baked_dump_path);
|
||||
|
||||
mg_log_set(MG_LL_DEBUG);
|
||||
struct mg_mgr mgr;
|
||||
@ -304,9 +296,7 @@ int main(int argc, char ** argv)
|
||||
|
||||
mg_mgr_free(&mgr);
|
||||
|
||||
lockx(&baked_dump_path);
|
||||
free_baked_dump(baked_dump_path.value);
|
||||
unlockx(&baked_dump_path);
|
||||
free_baked_resources();
|
||||
|
||||
return 0;
|
||||
|
8
routes.c
8
routes.c
@ -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)
|
||||
{
|
||||
lock_baked_resources();
|
||||
defer { unlock_baked_resources(); }
|
||||
NString_List env = {0};
|
||||
|
||||
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)
|
||||
{
|
||||
lock_baked_resources();
|
||||
defer { unlock_baked_resources(); }
|
||||
NString_List env = {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)
|
||||
{
|
||||
lock_baked_resources();
|
||||
defer { unlock_baked_resources(); }
|
||||
NString_List env = {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)
|
||||
{
|
||||
lock_baked_resources();
|
||||
defer { unlock_baked_resources(); }
|
||||
NString_List env = {0};
|
||||
|
||||
String_Builder out = {0};
|
||||
|
Reference in New Issue
Block a user