6 #include "system/nth_alloc.h"
11 Lt_destroy resource_destroy;
14 Lt_slot *create_lt_slot(void *resource, Lt_destroy resource_destroy)
17 assert(resource_destroy);
19 Lt_slot *lt_slot = nth_alloc(sizeof(Lt_slot));
20 if (lt_slot == NULL) {
24 lt_slot->resource = resource;
25 lt_slot->resource_destroy = resource_destroy;
30 void *release_lt_slot(Lt_slot *lt_slot)
34 void *resource = lt_slot->resource;
39 void destroy_lt_slot(Lt_slot *lt_slot)
43 lt_slot->resource_destroy(lt_slot->resource);
47 void lt_slot_reset_resource(Lt_slot *lt_slot, void *resource)
52 lt_slot->resource_destroy(lt_slot->resource);
53 lt_slot->resource = resource;
56 void lt_slot_replace_resource(Lt_slot *lt_slot, void *resource)
61 lt_slot->resource = resource;
64 int lt_slot_contains_resource(const Lt_slot *lt_slot, void *resource)
69 return lt_slot->resource == resource;