aboutsummaryrefslogtreecommitdiff
path: root/src/common/include/hashtbl.h
diff options
context:
space:
mode:
authorAlex Auvolat <alex.auvolat@ens.fr>2015-03-04 11:51:30 +0100
committerAlex Auvolat <alex.auvolat@ens.fr>2015-03-04 11:51:30 +0100
commit503f176e001ddf15e6e32bc912cf10b5764bc23b (patch)
tree2595bc45e582df3ede9241c00656b65866301e38 /src/common/include/hashtbl.h
parent0934f9943ef7bdec8c2eee3ea31b5e0f1e8a3faf (diff)
downloadkogata-503f176e001ddf15e6e32bc912cf10b5764bc23b.tar.gz
kogata-503f176e001ddf15e6e32bc912cf10b5764bc23b.zip
Process exiting & thread termination. IMPORTANT NOTE FOLLOWS.
Threads may now communicate via wait_on(void* ressource) and resume_on (void* ressource). Previous pause() is replaced by wait_on(current_thread) and resume(thread) by resume_on(thread). wait_on(x) may return false, indicating that the reason for returning is NOT that resume_on(x) was called but something else happenned. Typically false indicates that the curent thread is being killed and must terminate its kernel-land processing as soon as possible.
Diffstat (limited to 'src/common/include/hashtbl.h')
-rw-r--r--src/common/include/hashtbl.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/common/include/hashtbl.h b/src/common/include/hashtbl.h
index 818cfa0..b9c7178 100644
--- a/src/common/include/hashtbl.h
+++ b/src/common/include/hashtbl.h
@@ -25,6 +25,11 @@ void hashtbl_remove(hashtbl_t* ht, const void* key);
void* hashtbl_find(hashtbl_t* ht, const void* key); // null when not found
void hashtbl_iter(hashtbl_t* ht, kv_iter_fun_t f);
+// hashtbl_change is particular :
+// - it does NOT call malloc and uses the existing hashtbl cell
+// - it does NOT call the on_release fun on the previous element
+bool hashtbl_change(hashtbl_t* ht, void* key, void* v);
+
size_t hashtbl_count(hashtbl_t* ht);
/* vim: set ts=4 sw=4 tw=0 noet :*/