g_idle_add() clarification



Hi all,

Sorry to bother but I'm lost with the workings of

guint g_idle_add ()
My code is as
follows

extern "C"

void on_StartScan_activate() //from gtk menu item

{ printf("Start Scan Activated. \n");

scan_on_fg =1;

Scanning_lvl = g_idle_add((GSourceFunc) Scanning(), (gpointer) 0);

printf("Exiting StartScan.\n");  //main.cpp, Line 129

return; }

I get to Scanning() okay but I don't exit on_StartScan_activeat() until I exit Scanning() (not what I expected).

Worse still when I step through Scanning as I exit I get

(gdb) next

(main:24011): GLib-CRITICAL **: g_idle_add_full: assertion `function != NULL' failed

on_StartScan_activate () at main.cpp:129

(gdb) next

Exiting StartScan.


guint Scanning(void)

{

while(1 == scan_on_fg)

{ //Bean counting with rest of GUI in control, I hoped. }

return(FALSE); //Remove this thread.

}


Regards Ian.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]