Skip to content

Commit 408f38b

Browse files
Properly clean up scheduler state.
1 parent 9b15fac commit 408f38b

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

src/photon/photon_algorithm.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ scheduler_state *make_scheduler_state(void) {
3737
}
3838

3939
void free_scheduler_state(scheduler_state *s) {
40+
for (int i = 0; i < utarray_len(s->task_queue); ++i) {
41+
task_instance **instance =
42+
(task_instance **) utarray_eltptr(s->task_queue, i);
43+
free(*instance);
44+
}
4045
utarray_free(s->task_queue);
4146
utarray_free(s->available_workers);
4247
free(s);

src/photon/photon_scheduler.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,13 @@ local_scheduler_state *init_local_scheduler(event_loop *loop,
7373

7474
void free_local_scheduler(local_scheduler_state *s) {
7575
db_disconnect(s->scheduler_info->db);
76+
free(s->plasma_conn);
77+
worker_index *current_worker_index, *temp_worker_index;
78+
HASH_ITER(hh, s->worker_index, current_worker_index, temp_worker_index) {
79+
HASH_DEL(s->worker_index, current_worker_index);
80+
free(current_worker_index);
81+
}
82+
utarray_free(s->scheduler_info->workers);
7683
free(s->scheduler_info);
7784
free_scheduler_state(s->scheduler_state);
7885
event_loop_destroy(s->loop);
@@ -97,6 +104,7 @@ void process_plasma_notification(event_loop *loop,
97104
recv(client_sock, message, sizeof(object_id), 0);
98105
object_id *obj_id = (object_id *) message;
99106
handle_object_available(s->scheduler_info, s->scheduler_state, *obj_id);
107+
free(message);
100108
}
101109

102110
void process_message(event_loop *loop, int client_sock, void *context,

0 commit comments

Comments
 (0)