aboutsummaryrefslogtreecommitdiff
path: root/odb/pgsql/result.txx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-08-18 11:38:40 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-08-18 11:38:40 +0200
commit7391841a063328828621c8b70e02a81674686c97 (patch)
treedd76ccec9aa962461acc9a8e64d12fe75d2313c4 /odb/pgsql/result.txx
parent206f2b922531a6a2222145aae3ae90041c3c7ffe (diff)
Fix custom recursive loading in post_load callback
Before we called the callback while holding the statements locked. As a result, if the callback tried to load another object of this type, it failed. Now we unlock the statements (since we have completely loaded the object from ODB's point of view) and then call the callback. The callback test has been updated to test this situation.
Diffstat (limited to 'odb/pgsql/result.txx')
-rw-r--r--odb/pgsql/result.txx3
1 files changed, 1 insertions, 2 deletions
diff --git a/odb/pgsql/result.txx b/odb/pgsql/result.txx
index edea595..a0dc2f8 100644
--- a/odb/pgsql/result.txx
+++ b/odb/pgsql/result.txx
@@ -60,9 +60,8 @@ namespace odb
object_traits::load_ (statements_, obj);
statements_.load_delayed ();
- object_traits::callback (db, obj, callback_event::post_load);
-
l.unlock ();
+ object_traits::callback (db, obj, callback_event::post_load);
}
template <typename T>