Giter Site home page Giter Site logo

Comments (2)

mattpodwysocki avatar mattpodwysocki commented on August 18, 2024

CraigGidney wrote Dec 22, 2013 at 1:23 PM

I peeked at the GroupByUntil source and it's holding locks while sending items:

 ...
                    return;
                }

                lock (base._observer)
                    base._observer.OnNext(group);

                var md = new SingleAssignmentDisposable();
...

I bet that has something to do with it. I copied the relevant source into a project, put some logging around the acquisition of those locks and lo-and-behold:
...
Writing 350
(GroupByUntil near line 160) Requesting writer lock with hash 53969920 on thread 9
(GroupByUntil near line 160) Acquired writer lock with hash 53969920 on thread 9
(GroupByUntil near line 160) Started sending OnNext notification on thread 9
(GroupByUntil near line 220) Requesting _writer lock with hash 53969920 on thread 10
(GroupByUntil near line 220) Acquired _writer lock with hash 55330791 on thread 12
(GroupByUntil near line 220) Started sending OnCompleted notification on thread 12
(GroupByUntil near line 220) Finished sending OnCompleted notification on thread 12
(GroupByUntil near line 220) Released _writer lock with hash 55330791 on thread 12
[program deadlocks here]

See how thread 9 starts to send OnNext but never finishes? It's probably waiting for thread 10 to do something, but thread 10 is waiting for the lock thread 9 has. Thread 12 seems to have gone fine, though.

from reactive.

bartdesmet avatar bartdesmet commented on August 18, 2024

This has been fixed for the upcoming Rx.NET v2.x release.

from reactive.

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.