GithubHelp home page GithubHelp logo

Comments (2)

wolph avatar wolph commented on September 22, 2024

A few years ago the library switched to LockFileEx to make sure we can have shared locks again: #30

Beyond that... I'm honestly not entirely sure what locking options Windows has for Python. On stackoverflow I can see a few different options, I wouldn't oppose switching methods if any of those would help: https://stackoverflow.com/questions/29344366/lock-file-for-access-on-windows

I have to say that I'm surprised that there are different incompatible locking methods on Windows, generally you would expect the kernel or the filesystem to implement that and all APIs call the same locking methods internally.

Are you sure it's not a behaviour difference? Looking at the message of bgavrilMS I see this:

If you run the python app first (i.e. create the lock from py), the .NET app waits for the lock to go away. If you run the .NET app first however, the python app crashes because it cannot acquire the lock.

That makes me think that .Net simply keeps waiting for a lock whereas the Python code has a timeout configured. This method is honestly a bit clunky but there is (was?) no good way to get a multi-platform locking timeout otherwise:
https://github.com/WoLpH/portalocker/blob/927d53ef8ba14662104999fcedb5a1e285aeb232/portalocker/utils.py#L153-L161

If you would set the timeout to some ridiculously large number you might get the same behaviour.

from portalocker.

rayluo avatar rayluo commented on September 22, 2024

I have to say that I'm surprised that there are different incompatible locking methods on Windows, generally you would expect the kernel or the filesystem to implement that and all APIs call the same locking methods internally.

Yes, I'm equally surprised, too.

I wouldn't oppose switching methods if any of those would help: https://stackoverflow.com/questions/29344366/lock-file-for-access-on-windows

To be clear, I'm not currently suggesting a change from Portalocker. If Portalocker works fine in itself among its existing community, there is no motivation to change it.

Thanks for your input. We will give it more thoughts.

from portalocker.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.