Do not hold self-references. This then avoids the problem of having to

ensure that we only drop our self-reference exactly once.

To maintain the guarantee that an object won't go out of scope
unexpectedly while one of its event handlers is being called, the
event-calling functions now automatically obtain and drop extra
references.
This commit is contained in:
Michael Brown
2007-05-15 16:53:46 +00:00
parent 5471bfbbbe
commit b1755462ab
7 changed files with 96 additions and 38 deletions

View File

@@ -27,10 +27,11 @@
*/
void job_done ( struct job_interface *job, int rc ) {
struct job_interface *dest = job_dest ( job );
struct job_interface *dest = job_get_dest ( job );
dest->op->done ( dest, rc );
job_unplug ( job );
job_put ( dest );
}
/****************************************************************************