]> git.sur5r.net Git - openldap/commitdiff
ITS#8063 don't block our own thread
authorHoward Chu <hyc@openldap.org>
Wed, 25 Feb 2015 05:44:07 +0000 (05:44 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Thu, 26 Feb 2015 18:46:27 +0000 (12:46 -0600)
servers/slapd/overlays/syncprov.c

index 5cd259fb55c622cbd5bff92a5431130ea564d072..2d10fe70a7f8522a6c46c4596f78d39bc7399f76 100644 (file)
@@ -2122,6 +2122,10 @@ syncprov_op_mod( Operation *op, SlapReply *rs )
                        mt->mt_tail = mi;
                        /* wait for this op to get to head of list */
                        while ( mt->mt_mods != mi ) {
+                               /* don't wait on other mods from the same thread */
+                               if ( mt->mt_mods->mi_op->o_threadctx == op->o_threadctx )
+                                       break;
+
                                ldap_pvt_thread_mutex_unlock( &mt->mt_mutex );
                                /* FIXME: if dynamic config can delete overlays or
                                 * databases we'll have to check for cleanup here.