Skip to content
This repository was archived by the owner on Jan 18, 2025. It is now read-only.
This repository was archived by the owner on Jan 18, 2025. It is now read-only.

Use kqueue backend on BSDs #311

@ryanavella

Description

@ryanavella

Apologies for the necro in the older issue, I genuinely thought my symptoms were identical. I hope opening a new issue is appropriate, but if not please gently guide me in the right direction.

I am running FreeBSD 14.0 and I find that the watch feature doesn't pick up immediately on changes, sometimes taking 30+ seconds or (rarely) hanging indefinitely.

The root problem appears to be that cargo-watch pulls in watchexec 1.17.2, which in turn pulls in notify 4.0.18 which relied on a polling backend on BSDs. notify does have support for a kqueue backend as of 5.0.0-pre.11, and the most straightforward way I can see to get this backend into cargo-watch would be to upgrade the watchexec dependency to (at minimum) 2.0.0-pre.0.

I've forked and spent a few hours attempted to upgrade watchexec to 2.0.0-pre.0, and understandably it is a difficult refactor, mostly due to the API having changed significantly between watchexec 1.17.2 and watchexec 2.0.0-pre.0, especially in regards to handlers and configuration. I think I first need to familiarize myself with both versions of watchexec and the organization of cargo-watch before I could even think of pulling off a refactor, but if you have any suggestions that would be greatly appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions