# To subscribers of the xforms list from "Paolo Prandini" <prandini@spe.it> :
Thanks for suggestion, I have already tried it, but it is too
slow for a real time application. Users want to see moving
coordinates on the screen, not jumping ones.
Paolo
> -----Messaggio originale-----
> Da: owner-xforms@bob.usuhs.mil [mailto:owner-xforms@bob.usuhs.mil]Per
> conto di Antonio Buitrago
> Inviato: giovedì 1 giugno 2000 13:26
> A: xforms@bob.usuhs.mil
> Oggetto: Re: XForms: Threadsafe
>
>
> # To subscribers of the xforms list from Antonio Buitrago
> <antonio@tgi.es> :
>
> I have solved a similar problem using this (Chapter 4 in XForms Manual):
>
>
> 1.- Connect a function to "fd" :
>
>
> static int fd;
>
> int inicRefrescoForms ()
> {
> ...
> fl_add_io_callback (fd,FL_READ,
> (FL_IO_CALLBACK)refresca_forms_io_callback,
> NULL);
> return OK;
> }
>
>
> 2.- The callback function waits for a message from "fd":
>
> The structure "msj" (in below function) is a message which
> contain the "what
> to do" information.
>
> void refresca_forms_io_callback (int fd, void * dato)
> {
> TD_msj_refresco msj;
> int nBytes;
>
> if ((nBytes = read(fd, &msj, sizeof(msj))) > 0)
> {
> switch (msj.form)
> {
> case FORM_PPAL:
> refresca_ppal(&msj);
> break;
> case FORM_INICIAL:
> refresca_inicial (&msj);
> break;
> case FORM_CALIBRACION:
> refresca_calibracion (&msj);
> break;
>
> ....
>
> }
>
>
> void refresca_ppal(TD_msj_refresco *msj)
> {
>
> switch (msj->comando)
> {
> case PPAL_REFRESCA_FECHA:
> fl_set_object_label (fd_ppal->text_fecha, (char *)msj->args);
> break;
>
> ....
>
> }
> }
>
>
> 3.- Now you can send a "msj" from a thread to Xforms.
>
>
>
> I hope it helps you (Sorry my bad english).
>
> A. Buitrago
>
>
>
> Paolo Prandini wrote:
> >
> > I implemented a big program using XForms whose purpose is to
> control some
> > industrial machinery; the same Linux PC running X is also
> controlling the
> > I/O
> > (motors, lights, etc).
> > I need to show some real time values and alarms in the same window where
> > are located the pushbuttons activating the various functions .
> > I didn't even think of it, but in fact I designed everything as if
> > XForms were threadsafe.
> > BUT IT IS NOT! Now I have some mysterious lockups and I traced them to
> > this kind of problem.
> > The possible solutions are:
> > a) rewrite everything with another lib that is threadsafe
> > b) fix XForms
> > But to fix XForms I need the source code! What about letting me do this
> > kind of modification? Or maybe there is a threadsafe version in
> the works?
> > Thanks for any suggestion.
> > Paolo Prandini
> > prandini@spe.it
> >
> _________________________________________________
> To unsubscribe, send the message "unsubscribe" to
> xforms-request@bob.usuhs.mil or see
> http://bob.usuhs.mil/mailserv/xforms.html
> XForms Home Page: http://world.std.com/~xforms
> List Archive: http://bob.usuhs.mil/mailserv/list-archives/
>
_________________________________________________
To unsubscribe, send the message "unsubscribe" to
xforms-request@bob.usuhs.mil or see
http://bob.usuhs.mil/mailserv/xforms.html
XForms Home Page: http://world.std.com/~xforms
List Archive: http://bob.usuhs.mil/mailserv/list-archives/
This archive was generated by hypermail 2b29 : Thu Jun 01 2000 - 12:06:23 EDT