New iteration over the ev++ improvement patch.

Marc Lehmann schmorp at
Sat Jan 19 11:40:54 CET 2008

On Fri, Jan 18, 2008 at 11:37:49AM -0200, Leandro Lucarella <llucax at> wrote:
> Not in ev++.h and throw is #undef'ed when the file ends.

Not anymore, but your initial check-in had LOTS of "EV_THROW ()"'s in

(I rummaged around quite a bit, now urxvt and gvpe compile with it, which
is my major concern :)

> > b) overriding throw isn't really legal
> Where did you found that?

  in n2284,

  A translation unit shall not #define or #undef names lexically identical to keywords.

> > c) never override stuff the uer validly might have overridden herself already
> This goes against b), but well, is a valid argument. =)

uhu :)

> > right now, calling ev_default_destroy twice is a bug. this is safe, however:
> > 
> >    ev_default_init (0); ev_default_destroy ()
> Ugly hack, but clever =P

I thought I made a joke.

> In this scheme, the lifetime is controlled by an instance. But I think
> default_loop struct could be gone (and get_default_loop () renamed to
> default_loop () to mimic the C interface, but getting a loop_ref instead
> of a ev_loop*). I like the instance-way though.

Ya, well. Its not obviously bad to go either way. I should not have
provided ev_default_destroy at all.

> > > * ev::time() is now named ev::now().

(already talked about these)

> I don't really like prefixes, I prefer renaming in this case. At least
> could you consider just an underscore? sleep_, fork_, time_? I know you use

an undersore would be immensely ugly, but ok with me. but i convinced
myself that a total rename is fine as well if we can find a nice name.
sleep => delay is not totally nice but ok, time => now is nice, etc., and
that this is preferable to a prefix and certainly an underscore.

                The choice of a       Deliantra, the free code+content MORPG
      -----==-     _GNU_    
      ----==-- _       generation
      ---==---(_)__  __ ____  __      Marc Lehmann
      --==---/ / _ \/ // /\ \/ /      pcg at
      -=====/_/_//_/\_,_/ /_/\_\

More information about the libev mailing list