summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/eio/eio_monitor.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/eio/eio_monitor.c b/src/lib/eio/eio_monitor.c
index 247fe7c..53581a4 100644
--- a/src/lib/eio/eio_monitor.c
+++ b/src/lib/eio/eio_monitor.c
@@ -201,7 +201,11 @@ _eio_monitor_rename(Eio_Monitor *monitor, const char *newpath)
201 const char *tmp; 201 const char *tmp;
202 202
203 /* destroy old state */ 203 /* destroy old state */
204 if (monitor->exist) eio_file_cancel(monitor->exist); 204 if (monitor->exist)
205 {
206 eio_file_cancel(monitor->exist);
207 monitor->exist = NULL;
208 }
205 209
206 if (monitor->backend) 210 if (monitor->backend)
207 { 211 {
@@ -218,11 +222,15 @@ _eio_monitor_rename(Eio_Monitor *monitor, const char *newpath)
218 eina_stringshare_del(tmp); 222 eina_stringshare_del(tmp);
219 223
220 /* That means death (cmp pointer and not content) */ 224 /* That means death (cmp pointer and not content) */
225 /* this - i think, is wrong. if the paths are the same, we should just
226 * re-stat anyway. imagine the file was renamed and then replaced?
227 * disable this as this was part of a possible crash due to eio.
221 if (tmp == monitor->path) 228 if (tmp == monitor->path)
222 { 229 {
223 _eio_monitor_error(monitor, -1); 230 _eio_monitor_error(monitor, -1);
224 return; 231 return;
225 } 232 }
233 */
226 234
227 EINA_REFCOUNT_REF(monitor); /* as we spawn a thread for this monitor, we need to refcount specifically for it */ 235 EINA_REFCOUNT_REF(monitor); /* as we spawn a thread for this monitor, we need to refcount specifically for it */
228 236