diff --git a/daemon/studio.c b/daemon/studio.c index c2b274b8..36ae6624 100644 --- a/daemon/studio.c +++ b/daemon/studio.c @@ -511,6 +511,7 @@ static bool studio_on_child_exit_callback( void * context, + ladish_graph_handle graph, ladish_app_supervisor_handle app_supervisor) { child_exit_context_ptr->found = ladish_app_supervisor_child_exit(app_supervisor, child_exit_context_ptr->pid); @@ -528,7 +529,7 @@ void studio_on_child_exit(pid_t pid) context.pid = pid; context.found = false; - studio_iterate_app_supervisors(&context, studio_on_child_exit_callback); + studio_iterate_virtual_graphs(&context, studio_on_child_exit_callback); if (!context.found) { @@ -708,17 +709,19 @@ exit: } bool -studio_iterate_app_supervisors( +studio_iterate_virtual_graphs( void * context, bool (* callback)( void * context, + ladish_graph_handle graph, ladish_app_supervisor_handle app_supervisor)) { struct list_head * node_ptr; ladish_room_handle room; ladish_app_supervisor_handle room_app_supervisor; + ladish_graph_handle room_graph; - if (!callback(context, g_studio.app_supervisor)) + if (!callback(context, g_studio.studio_graph, g_studio.app_supervisor)) { return false; } @@ -728,8 +731,9 @@ studio_iterate_app_supervisors( room = ladish_room_from_list_node(node_ptr); room_app_supervisor = ladish_room_get_app_supervisor(room); ASSERT(room_app_supervisor != NULL); + room_graph = ladish_room_get_graph(room); - if (!callback(context, room_app_supervisor)) + if (!callback(context, room_graph, room_app_supervisor)) { return false; } @@ -738,7 +742,7 @@ studio_iterate_app_supervisors( return true; } -static bool studio_stop_app_supervisor(void * context, ladish_app_supervisor_handle app_supervisor) +static bool studio_stop_app_supervisor(void * context, ladish_graph_handle graph, ladish_app_supervisor_handle app_supervisor) { ladish_app_supervisor_stop(app_supervisor); return true; /* iterate all supervisors */ @@ -746,7 +750,7 @@ static bool studio_stop_app_supervisor(void * context, ladish_app_supervisor_han void studio_stop_app_supervisors(void) { - studio_iterate_app_supervisors(NULL, studio_stop_app_supervisor); + studio_iterate_virtual_graphs(NULL, studio_stop_app_supervisor); } void emit_studio_renamed() diff --git a/daemon/studio.h b/daemon/studio.h index b53d3d52..0d19a5a8 100644 --- a/daemon/studio.h +++ b/daemon/studio.h @@ -28,6 +28,7 @@ #define STUDIO_H__0BEDE85E_4FB3_4D74_BC08_C373A22409C0__INCLUDED #include "app_supervisor.h" +#include "graph.h" bool studio_init(void); void studio_uninit(void); @@ -40,10 +41,11 @@ bool studio_delete(void * call_ptr, const char * studio_name); void studio_on_child_exit(pid_t pid); bool -studio_iterate_app_supervisors( +studio_iterate_virtual_graphs( void * context, bool (* callback)( void * context, + ladish_graph_handle graph, ladish_app_supervisor_handle app_supervisor)); void studio_stop_app_supervisors(void); diff --git a/daemon/virtualizer.c b/daemon/virtualizer.c index 3d50b24a..b83ba8c4 100644 --- a/daemon/virtualizer.c +++ b/daemon/virtualizer.c @@ -61,7 +61,7 @@ struct app_find_context #define app_find_context_ptr ((struct app_find_context *)context) -bool get_app_name_from_supervisor(void * context, ladish_app_supervisor_handle app_supervisor) +bool get_app_name_from_supervisor(void * context, ladish_graph_handle graph, ladish_app_supervisor_handle app_supervisor) { pid_t pid; char * app_name; @@ -114,7 +114,7 @@ char * get_app_name(struct virtualizer * virtualizer_ptr, uint64_t client_id, pi context.pid = (pid_t)pid; context.app_name = NULL; - studio_iterate_app_supervisors(&context, get_app_name_from_supervisor); + studio_iterate_virtual_graphs(&context, get_app_name_from_supervisor); if (context.app_name != NULL) {