tags:

views:

7

answers:

0

Hello,

The goal is to run in a separate thread function downloads data from the main form.

To do this, use GIOScheduler.

I have function for loading data:

void load(GInputStream* input_stream, GCancellable* cancellable) 
{ 
   ... 
} 

The function load works 100%. Then there is the function you want to send in a separate thread:

void loading(MainWin* mw) 
{ 
  GInputStream* input_stream = g_file_read(loading_file, mw->generator_cancellable, NULL); 
  mw->data = load(G_INPUT_STREAM(input_stream), mw->generator_cancellable); 
} 

I'm trying to send the following:

g_io_scheduler_push_job( job_func1, mw, NULL, G_PRIORITY_DEFAULT, mw->generator_cancellable); 

Where job_func1:

static void job_func1(GIOSchedulerJob *job, GCancellable *cancellable, gpointer user_data) 
{ 
    MainWin* mw  = (MainWin*)user_data; 
   while(!g_cancellable_is_cancelled(mw->generator_cancellable)) 
   { 
      g_io_scheduler_job_send_to_mainloop(job, loading, mw, NULL); 
   } 
} 

When i try to call loading in another thread i have big mem leak. What's wrong?

Thank you