R: XForms: Threadsafe

From: Paolo Prandini (prandini@spe.it)
Date: Thu Jun 01 2000 - 11:53:29 EDT

  • Next message: Paolo Prandini: "R: XForms: Threadsafe"

    # 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