> In the function, shove the serial data into a pipe that the main thread
> can read from in a function invoked by a GDK Input call:

Done.  Seems to work... I worked on the code and tried to crash it for an
hour and a half, to no avail, so I think it's fixed.  I guess GDK just
cleans itself up before giving control over to my code, so I can make GTK
calls without breaking anything.  Looks good!

Thanks a lot!

-Nate

> On Thu, 2006-06-15 at 16:28 -0400, [EMAIL PROTECTED] wrote:
>> No, it's not in a seperate thread, it's a function that gets called
>> asynchronously by the kernel.  But that function *does* then make GTK
>> calls.  Would it be safer to tie my serial port routines to one of those
>> GDK IO callbacks, that way I know it's safe to muck around when I get
>> called?
>
> In the function, shove the serial data into a pipe that the main thread
> can read from in a function invoked by a GDK Input call:
>
>   http://developer.gnome.org/doc/API/2.0/gdk/gdk-Input.html
>
> at least, that's what I do.
>
>
>   // Wally
>
>>
>> - Nate
>>
>> > It sounds like lightening the load merely reduces the chance of
>> hitting
>> > some race condition.  You say your app makes heavy use of the serial
>> > port.  Are you doing this in a separate thread?  If so, is that thread
>> > also making gtk calls (in addition to the main thread)?
>> >
>> >
>> >   // Wally
>> >
>> > On Thu, 2006-06-15 at 14:41 -0400, [EMAIL PROTECTED] wrote:
>> >> I'm writing an application that makes fairly heavy use of the serial
>> >> port.
>> >>  While testing this app, things seem to be running fine, until I
>> wiggle
>> >> the mouse quickly over a treeview (a list) or over a few checkboxes
>> in
>> >> the
>> >> window.  Sometimes I have to wiggle for a minute, sometimes just 5
>> >> seconds
>> >> will do, but the app crashes, with either a segfault, or GLib
>> reporting
>> >> a
>> >> corrupted doubly linked list.
>> >>
>> >> Some thoughts:
>> >> 1.  Wiggling the mouse anywhere besides over the treeview or the
>> >> checkboxes causes no problems.
>> >>
>> >> 2.  Processor usage goes up significantly when wiggling the mouse
>> over
>> >> the
>> >> treeview or the checkboxes.
>> >>
>> >> 3.  The problem can be completely avoided by making the offending
>> >> widgets
>> >> non-sensitive (dimmed out).
>> >>
>> >> 4.  I'm running on an old computer, a Celeron, at around 400Mhz or so
>> :(
>> >>
>> >> Could number 4 be the culprit?  Perhaps wiggling the mouse over some
>> >> widgets (and thus causing GTK to redraw them, presumably) slows down
>> the
>> >> system so much (70% processor usage at the time of death sometimes)
>> that
>> >> some routines or signals interrupt themselves and do something
>> naughty?
>> >>
>> >> When I modify the program (skipping key routines) to drastically
>> lower
>> >> the
>> >> processor usage, the problem goes away.
>> >>
>> >> I would like to chalk this up to a weak computer... but it seems
>> >> unlikely
>> >> to me that GTK simply blows up on old computers (with very busy
>> apps).
>> >>
>> >> For reference:
>> >>   400 Mhz Celeron
>> >>   128 Megs ram
>> >>   Debian Linux
>> >>   GTK 2.6
>> >>
>> >> Any advice is appreciated!
>> >>
>> >> _______________________________________________
>> >> gtk-app-devel-list mailing list
>> >> gtk-app-devel-list@gnome.org
>> >> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>> > --
>> > Your eyes are weary from staring at the CRT.  You feel sleepy.  Notice
>> > how restful it is to watch the cursor blink.  Close your eyes.  The
>> > opinions stated above are yours.  You cannot imagine why you ever felt
>> > otherwise.
>> >
>>
> --
> Your eyes are weary from staring at the CRT.  You feel sleepy.  Notice
> how restful it is to watch the cursor blink.  Close your eyes.  The
> opinions stated above are yours.  You cannot imagine why you ever felt
> otherwise.
>


_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to