core: schedule enabled/disabled callbacks to avoid infinite recursion

This commit is contained in:
Dan Williams
2009-12-01 12:57:39 -08:00
parent 3350a3aeea
commit 231d2ca90b

View File

@@ -65,8 +65,11 @@ mm_modem_enable (MMModem *self,
state = mm_modem_get_state (self); state = mm_modem_get_state (self);
if (state >= MM_MODEM_STATE_ENABLED) { if (state >= MM_MODEM_STATE_ENABLED) {
MMCallbackInfo *info;
/* Already enabled */ /* Already enabled */
callback (self, NULL, user_data); info = mm_callback_info_new (self, callback, user_data);
mm_callback_info_schedule (info);
return; return;
} }
@@ -88,8 +91,11 @@ mm_modem_disable (MMModem *self,
state = mm_modem_get_state (self); state = mm_modem_get_state (self);
if (state <= MM_MODEM_STATE_DISABLED) { if (state <= MM_MODEM_STATE_DISABLED) {
MMCallbackInfo *info;
/* Already disabled */ /* Already disabled */
callback (self, NULL, user_data); info = mm_callback_info_new (self, callback, user_data);
mm_callback_info_schedule (info);
return; return;
} }