Whoops, looks like it isn't related to libuv. I just tried it with libuv in 
c and it works flawlessly. Must be something on the side of luvit then?
Anyways sorry for the noise :)

On Monday, 8 June 2020 12:04:30 UTC+5:30, Shreyansh Chouhan wrote:
>
> I was using libuv through luvit to watch a file for fs notifications. And 
> I used the C 
> code written at the end of this mail to edit the file. For some reason, 
> not all the writes lead
> to the execution of the callback.
>
> Also another weird thing that I noticed was that if I edited the watched 
> file using an editor, (say gedit or nano,) all
> the notifications were registered and the callback was called after every 
> save/write.
>
> I used the following C code to write different lines to a file one by one, 
> and found that
> the callbacks were skipped for a few writes. (Also, if it helps, I tried 
> using inotify to
> monitor the same file, and it just worked. The execution of callbacks was 
> not skipped
> for a single write.)
>
> C Code (two files one uses write and the other fwrite, both caused skips):
> #include<stdio.h>
> #include<unistd.h>
> #include<fcntl.h>
>
> int main (int argc, char **argv) {
>   if(argc != 2) {
>     printf("You fool\n");
>     return 0;
>   }
>
>   int x = argv[1][0] - '0';
>
>   int fd;
>   char str[4][8] = {
>     {'l', 'i', 'n', 'e', ' ', '1', '\n', '\0'},
>     {'l', 'i', 'n', 'e', ' ', '2', '\n', '\0'},
>     {'l', 'i', 'n', 'e', ' ', '3', '\n', '\0'},
>     {'l', 'i', 'n', 'e', ' ', '4', '\n', '\0'}
>   };
>
>   fd = open("test", O_WRONLY | O_APPEND);
>   write(fd, str[x], sizeof(str[x]));
>
>   close(fd);
>
>   return 0;
> }
>
> #include<stdio.h>
> #include<unistd.h>
>
> int main (int argc, char **argv) {
>   if(argc != 2) {
>     printf("You fool\n");
>     return 0;
>   }
>
>   int x = argv[1][0] - '0';
>
>   FILE *fp;
>   char str[4][8] = {
>     {'l', 'i', 'n', 'e', ' ', '1', '\n', '\0'},
>     {'l', 'i', 'n', 'e', ' ', '2', '\n', '\0'},
>     {'l', 'i', 'n', 'e', ' ', '3', '\n', '\0'},
>     {'l', 'i', 'n', 'e', ' ', '4', '\n', '\0'}
>   };
>
>   fp = fopen("test", "a");
>   fwrite(str[x], 1, sizeof(str[x]), fp);
>
>   fclose(fp);
>
>   return 0;
> }
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"libuv" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/libuv/f957e802-a7ed-40b9-a0c2-6e4587cf44cao%40googlegroups.com.

Reply via email to