int TRI_StartReplicationApplier (TRI_replication_applier_t* applier, TRI_voc_tick_t initialTick, bool useTick) { LOG_TRACE("requesting replication applier start. initialTick: %llu, useTick: %d", (unsigned long long) initialTick, (int) useTick); if (applier->_vocbase->_type == TRI_VOCBASE_TYPE_COORDINATOR) { return TRI_ERROR_CLUSTER_UNSUPPORTED; } int res = TRI_ERROR_NO_ERROR; // wait until previous applier thread is shut down while (! TRI_WaitReplicationApplier(applier, 10 * 1000)); TRI_WriteLockReadWriteLock(&applier->_statusLock); if (! applier->_state._active) { res = StartApplier(applier, initialTick, useTick); } TRI_WriteUnlockReadWriteLock(&applier->_statusLock); return res; }
int TRI_StartReplicationApplier (TRI_replication_applier_t* applier, TRI_voc_tick_t initialTick, bool useTick) { int res; res = TRI_ERROR_NO_ERROR; LOG_TRACE("requesting replication applier start. initialTick: %llu, useTick: %d", (unsigned long long) initialTick, (int) useTick); // wait until previous applier thread is shut down while (! TRI_WaitReplicationApplier(applier, 10 * 1000)); TRI_WriteLockReadWriteLock(&applier->_statusLock); if (! applier->_state._active) { res = StartApplier(applier, initialTick, useTick); } TRI_WriteUnlockReadWriteLock(&applier->_statusLock); return res; }