Comments (9)
It should be updated once/frame. The read-during-update issue is a known one and why I'm not particularly fond of using shared memory for IPC.
I can look into exposing a session-shared mutex. I'm not sure our platform abstraction layer provides that functionality, so no promises.
from api-cdi.
Paging @meh because I think he solved that problem on his NPAPI plugin.
from api-cdi.
@aRestless nope, it doesn't do any checks, just hopes for the best.
from api-cdi.
I can look into exposing a session-shared mutex. I'm not sure our platform abstraction layer provides that functionality, so no promises.
Thanks. That would be amazing.
from api-cdi.
Hm. To be honest I wouldn't throw resources at the MumbleLink protocol, but rather focus on an own, inherently thread-safe protocol for real time data that includes the same information. Additionally that mutex could potentially slow down the rendering process, especially if more than one external application would be accessing it.
from api-cdi.
that mutex could potentially slow down the rendering process
Only if the game client can't immediately acquire a lock and is programmed to wait for it. But it shouldn't wait. It should just fast-exit the update procedure if the mutex is already in use.
focus on an own, inherently thread-safe protocol for real time data that includes the same information
Yes please!
from api-cdi.
It should just fast-exit the update procedure if the mutex is already in use.
That can easily lead to starvation. Say my app and GW2 run at roughly the same fps/refresh rate, but my app runs a slight bit earlier than GW2. Then my app will always block GW2 from its update procedure.
Of course in reality there will be differences in runtime and the problem will only persist for short intervals but even then, would you really want that behaviour for real time data?
from api-cdi.
Per definition it's not real-time data if you have to wait to acquire a lock. And I think it's unreasonable for most apps to request an update at the same refresh rate as it gets written.
from api-cdi.
Not going to add a lock to the MumbleLink data -- my recommendation is that you handle exceptions due to mis-reads gracefully on the application side. Eventually I'd like to expose real-time data from the local client (e.g., via a websocket) but that's really really far off (read: after guild chat and character portraits).
Created a new issue for more accurate tracking.
from api-cdi.
Related Issues (20)
- Add `updated_at` to /worlds HOT 1
- /v2/gliders does not respect the requested language HOT 1
- "binding" is missing for equipped bags
- /v2/characters endpoint - stat selectable items sometimes missing prefixes HOT 1
- Missing bits details in (some) No Quarter achievements
- Missing home instance nodes in /v2/account/home/nodes
- Invalid Link response header from /v2/recipes/search
- New Exposure: Looking for Group
- Unknown leading one in all worlds object at wvw matches end point
- /v2/guild/:id/log: expose guild stash id for withdraw/deposit operations
- GraphQL interface as an alternative to REST for public client development. HOT 1
- Three recipes who's output item reports invalid HOT 1
- Missing items from /v2/items and /v1/item_details.json
- /v2/characters/:id/quests not showing completed quests
- Mumble link: Inconsistent AvatarPosition updates
- /v2/items/:id missing new EoD flag for Research Kit salvage
- Character equipment is incomplete with newer equipment slots
- Why skills api not show cooldown time?
- /v2/account/wizardsvault/daily Returns inaccurate data until after logging in HOT 1
- Render service EoD elite specialization's icons resolution doesn't match others'
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 api-cdi.