private static LogWriterAction _logWriter; //we must pin the delegate before informing to reindexer, so we keep a reference to it, so gc won't collect it. /// <summary> /// Enables logger and send internal reindexer logs to <paramref name="logWriterAction"/>. /// </summary> /// <param name="logWriterAction">Action to send logs</param> public static void EnableLogger(LogWriterAction logWriterAction) { lock (_logWriterLocker) { ReindexerBinding.reindexer_disable_logger(); //if we free previous delegate before disabling, gc may collect before enabling. _logWriter = logWriterAction; ReindexerBinding.reindexer_enable_logger(_logWriter); } }
public void InitReindexer() { _rx = ReindexerBinding.init_reindexer(); Assert.AreNotEqual(UIntPtr.Zero, _rx); _logWriter = new LogWriterAction(Log); ReindexerBinding.reindexer_enable_logger(_logWriter); Connect(); }