Skip to content

core.tangle: Move fd close into callback#1763

Open
brownjohnf wants to merge 1 commit intonvim-neorg:mainfrom
brownjohnf:tangle-close-fd
Open

core.tangle: Move fd close into callback#1763
brownjohnf wants to merge 1 commit intonvim-neorg:mainfrom
brownjohnf:tangle-close-fd

Conversation

@brownjohnf
Copy link

Occasionally, when tangling, neorg would display an error about a bad file descriptor. Running tangle again would often succeed. It happened maybe 1 in 10 times or so.

This commit addresses what I believe to be the issue, which is that we were closing the file descriptor outside of the vim.uv.fs_write call, which I believe is async. So in some cases (perhaps correlated with the size of data being written?), we'd close the file before the write had completed, which would then result in an error.

I've been running this patch locally for the last week or so, and I have neorg configured to tangle-on-write for norg files. I have yet to encounter the error, which makes me believe this to be the fix (or at least not problematic?).

I'm a total lua newb (but having fun!), so please correct me if my reasoning or the changes don't make sense.

Occasionally, when tangling, neorg would display an error about a bad
file descriptor. Running tangle again would often succeed. It happened
maybe 1 in 10 times or so.

This commit addresses what I believe to be the issue, which is that we
were closing the file descriptor _outside_ of the vim.uv.fs_write call,
which I believe is async. So in some cases (perhaps correlated with the
size of data being written?), we'd close the file before the write had
completed, which would then result in an error.

I've been running this patch locally for the last week or so, and I have
neorg configured to tangle-on-write for norg files. I have yet to
encounter the error, which makes me believe this to be the fix (or at
least not problematic?).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant