Graham, libev is a performance-oriented library; since allocations can be a bottleneck and can be handled in many different ways, the library uses a common pattern and gives memory control to the user. Perhaps the user wants to allocate only a fixed number of watchers statically, perhaps they use a memory pool, or perhaps they just use malloc - all of these use cases are supported by ev_*_init.
The mistake checking you want could be added with very much overhead (keeping a list of all the pointers initialized, and adding a ev_*_deinit function? putting a checksum in the structure?), but that would negate the point of giving user memory control in the first place. Also, no one needs it because it's clear from the outset that managing watcher memory is the user's job. If you had read the manual or looked at the source code you'd realize libev is filled with assertions. _______________________________________________ libev mailing list [email protected] http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev
