Comments (2)
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.
This has been fixed for the upcoming Rx.NET v2.x release.
from reactive.
Related Issues (20)
- PageNotFoundError about https://www.reactiveui.net/slack HOT 2
- Referencing System.Reactive from a WinUI 3 app or library is causing XLS errors to display in VS while XAML files are open HOT 1
- Possible Deadlock in BehaviorSubject.Subscribe HOT 2
- Incorporate https://github.com/runceel/ReactiveProperty HOT 5
- Throttle breaks the observable chain while running on wasm in .net 8 HOT 5
- Issue with CancellationToken lifetime in Observable.Using (async version) HOT 1
- Window and Buffer operators omit items which are released immediately HOT 5
- Benchmarks don't run for .NET 6+
- TestScheduler WithAsync swallows all exceptions making all tests pass HOT 3
- Publish symbols for assemblies in this package HOT 1
- Union doesn't dispose enumerator for empty lists HOT 1
- IntroToRx recommends wrong Window overload
- Fully update Ix for .NET SDK 8.0 HOT 1
- Bug in Merge for USE_FAIR_AND_CHEAPER_MERGE HOT 4
- ToAsyncEnumerable_Observable_Cancel_InFlight sometimes fails spuriously
- Do operator can perform unexpected type conversion on observable sequence HOT 2
- Feature Request: Make `AsyncGate.LockAsync` cancellable HOT 4
- Observable.Timer(TimeSpan.FromSeconds(86400 * 50)) throws exception HOT 2
- `Publish` overload for `IAsyncEnumerable`
- Observable.Start documentation HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reactive.