eio - fix crashes due to stale eio files in tracking list
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Mon, 20 Apr 2015 12:46:23 +0000 (21:46 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Mon, 20 Apr 2015 12:55:24 +0000 (21:55 +0900)
commit7d36abad25e102b2e09e49ff5000906673b046f5
tree7dfef5b418a9646a28ca443eda4eaf7c0249d98b
parentb81b29eba2f30ee2168af90cc546c5f557f5e5f4
eio - fix crashes due to stale eio files in tracking list

so eio_eet didnt free fiels the same as the rest of eio. it thought it
was special. it thought it could just go free() it's objects (even
though they inherit the core Eio_File object type in their structs).
everyone else ended up calling eio_file_free() EXCEPT eio_eet. so the
eio_(long)_file_set() funcs ewnded up adding this eio file to the
tracking list via eio_file_register() but never unregistered because
they really liked to just do their own thing anyway...

BAD CEDRIC! SPANKING TIME

http://33.media.tumblr.com/3422c76c33c3b9b045f623ff73e0bf8d/tumblr_mhvu61N9br1rbavngo1_500.gi

so this unifies all allocation to now use a single allocator (that
also ensures all eio async io objects are zero'd out), and a SINGLE
free path, and then it all works. no more valgrind complaints on e
shutdown/restart whilst eio "things" were used before or ... maybe
still around.

this should fix T2129

so try again "git master" after this commit.

@fix
src/lib/eio/eio_eet.c
src/lib/eio/eio_file.c
src/lib/eio/eio_main.c
src/lib/eio/eio_private.h
src/lib/eio/eio_single.c