[Glade-users] GTK+ threads: works great but compile-time warning

David Buchan pdbuchan at yahoo.com
Sun May 29 20:38:19 EDT 2011


Sorry to mail-bomb everyone, but I should clarify why I lose control in this case. The computation is like calculating pi to infinite digits. It keeps going forever (while (onoff == 1) statement). My hope was to have the user toggle onoff between 0 and 1 by button click.

--- On Sun, 5/29/11, David Buchan <pdbuchan at yahoo.com> wrote:

> From: David Buchan <pdbuchan at yahoo.com>
> Subject: Re: [Glade-users] GTK+ threads: works great but compile-time warning
> To: glade-users at lists.ximian.com
> Date: Sunday, May 29, 2011, 7:17 PM
> I found some people on the web who
> were putting a cast (GThreadFunc) before the 1st argument of
> g_thread_create. I did this, and got rid of the error
> message. Weird, and a little worrisome. Regardless, the code
> works.
> 
> But it occurs to me that maybe I don't need to do threads
> at all.
> Here's specifically what I want to achieve:
> 
> I have the user press a button to begin some heavy
> computation, but I also want the user to be able to press
> another button, if desired, to stop the computation. They
> won't need to do anything else. That is, other than stop the
> computation, they need no more functionality while the
> numbers are being crunched.
> 
> I had tested briefly and found that once the computation
> started, I lost control and had to click on the x to close
> out the window. In Ubuntu, the screen darkens to inform the
> user that they've lost control. This is what initially led
> me to believe I needed threads.
> 
> Is there a way to allow them to stop the computation
> without resorting to threads? Seems like something a lot of
> programs would need, and I (perhaps mistakely) didn't think
> threads were quite so commonly used.
> 
> Dave
> 
> --- On Sat, 5/28/11, David Buchan <pdbuchan at yahoo.com>
> wrote:
> 
> > From: David Buchan <pdbuchan at yahoo.com>
> > Subject: GTK+ threads: works great but compile-time
> warning
> > To: glade-users at lists.ximian.com
> > Date: Saturday, May 28, 2011, 8:58 PM
> > Hi guys,
> > 
> > Info: Ubuntu (lucid), gtkbuilder from glade 3.6.7, C
> > language with gcc.
> > 
> > I took some of Tadej's thread code from his Bits and
> Pieces
> > blog post, and modified it to closer to what I need.
> > 
> > Specifically, I moved the thread creation into a
> callback,
> > on the basis that I understood that all callbacks
> were
> > inside main's threadlock so it should be equivalent.
> I
> > removed the timeout.
> > 
> > You click on button1 and it's label will cycle from
> > "thread" to "cycle" each second. You click on button2
> to
> > stop it.
> > 
> > It does the job, but gives a compile-time warning:
> > 
> > test5.c: In function ‘on_button1_clicked’:
> > test5.c:33: warning: passing argument 1 of
> > ‘g_thread_create_full’ from incompatible pointer
> type
> > /usr/include/glib-2.0/glib/gthread.h:225: note:
> expected
> > ‘GThreadFunc’ but argument is of type ‘void *
> > (*)(struct TestData *)’
> > 
> > Note that I call g_thread_create not
> g_thread_create_full.
> > 
> > Comments?
> > Code attached.
> > 
> > Thanks,
> > Dave
> _______________________________________________
> Glade-users maillist  -  Glade-users at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/glade-users
> 


More information about the Glade-users mailing list