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



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





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