• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

DemoBytom / DemoEngine / 22419570786 / 1
33%
develop: 26%

Build:
Build:
LAST BUILD BRANCH: dependabot/nuget/main/nuget-packages-e4a8e8e1df
DEFAULT BRANCH: develop
Ran 27 Feb 2026 07:48PM UTC
Files 148
Run time 6s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

25 Feb 2026 10:54PM UTC coverage: 16.029% (-0.05%) from 16.077%
22419570786.1

push

coveralls.net

DemoBytom
Async refactor - `StaThreadRequest` and `AsyncServiceScopes`

A warning was reported due to incorrectly disposing types that only implement `IAsyncDisposable`:
```
Demo.Engine Warning: 0 : AUTOFAC: A synchronous Dispose has been attempted, but the tracked object of type 'Demo.Engine.Core.Services.MainLoopService' only implements IAsyncDisposable. This will result in an inefficient blocking dispose. Consider either implementing IDisposable on 'Demo.Engine.Core.Services.MainLoopService' or disposing of the scope/container with DisposeAsync.
```

The solution was to use an `AsyncServiceScope` retreived via `_scopeFactory.CreateAsyncScope()` instead `IServiceScope` from `_scopeFactory.CreateScope()`.
This led to a bigger refactor as scopes were also created within `RenderingSurface` which in turn then required a `IAsyncDisposable` implementation. Changes in `RenderingSurface` required changes in `StaThreadRequests` and so on. Turtles all the way down 🐢🐢🐢
Currently all async methods are properly awaited and don't deadlock. But some `.ConfigureAwaits` might need to be added. This will be evaluated later.

Fixes #511 (+1 squashed commits)

Squashed commits:

[d20453c] Async refactor - `StaThreadRequest` and `AsyncServiceScopes`

A warning was reported due to incorrectly disposing types that only implement `IAsyncDisposable`:
```
Demo.Engine Warning: 0 : AUTOFAC: A synchronous Dispose has been attempted, but the tracked object of type 'Demo.Engine.Core.Services.MainLoopService' only implements IAsyncDisposable. This will result in an inefficient blocking dispose. Consider either implementing IDisposable on 'Demo.Engine.Core.Services.MainLoopService' or disposing of the scope/container with DisposeAsync.
```

The solution was to use an `AsyncServiceScope` retreived via `_scopeFactory.CreateAsyncScope()` instead `IServiceScope` from `_scopeFactory.CreateScope()`.
This led to a bigger refactor as scopes were also created within `RenderingSurface` which in turn t... (continued)

1327 of 8279 relevant lines covered (16.03%)

0.16 hits per line

Source Files on job 22419570786.1
  • Tree
  • List 148
  • Changed 20
  • Source Changed 8
  • Coverage Changed 19
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 22419570786
  • 0cf5bae9 on github
  • Prev Job for on feature/ValueResults (#22327438970.1)
  • Next Job for on feature/ValueResults (#22549071429.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc