[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Google
  Web www.spinics.net

Re: Userspace module return value?



On Tue, Jul 20, 2004 at 04:00:21PM +0200, Ingo Molnar scribbled:
> 
> * Marek Habersack <grendel@caudium.net> wrote:
> 
> > if (rval == REQ_STATIC) {
> >     req->event = 1;
> >     do_syslog("Static request, getting the object (%s)", req->objectname);
> >     rval = tux(TUX_ACTION_GET_OBJECT, req);
> >     if (rval < 0 || req->error) {
> >       req->event = 2;
> >       if (content_type(req) == CONTENT_NOTIFY) 
> >         return send_failure(req, LOG_ERR_OBJECT_NOT_FOUND);
> >       
> >       goto abort;
> >     }
> >     return rval;
> >   }
> 
> This code doesnt handle events properly. When tux() returns there might
> be another request active (with a different ->priv value) - you need to
> return so that your event loop can be re-called with the proper request
> pointer.
OK, I see the problem now. Above, I'm calling tux(TUX_ACTION_GET_OBJECT,
req) and if it fails I immediately call either tux(TUX_ACTION_SEND_BUFFER,
req) or tux(TUX_ACTION_FINISH_CLOSE_REQ, req) (in the 'abort; label) -
instead I should return immediately after the TUX_ACTION_GET_OBJECT call
fails and send the buffer or close the connection only the next time
handle_events is called. Did I get it right?

thanks,

marek

Attachment: signature.asc
Description: Digital signature


[Older Fedora Users Mail]     [Home]     [Fedora Legacy]     [Fedora Desktop]     [iPod Nano]     [ATA RAID]     [Fedora Bible]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Packaging]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

Powered by Linux

Google
  Web www.spinics.net