Comments (5)
@leon-thomm thank you for your answers! it means a lot I have gotten this to work for something I am working on just trying to figure out more of the details
from ryven.
The whole application is single threaded. Such functionality must be implemented on node level, you just have to write it yourself. I think nothing stops your nodes from exploiting concurrency, even starting threads and processes and have the node update itself on completion or messages - it rather comes down to the use case and what design is intuitive.
from ryven.
I experimented with multi-threading in Ryven itself a while ago, especially for separating execution of the GUI thread and the flow execution, but I decided it's generally not worth the struggle. It is either extremely unsafe or requires a lot of abstraction, which comes at a cost in Python.
from ryven.
@leon-thomm so that threading bridge code is pretty much dead code? I was trying to figure out where it was being triggered, Also could you let me know where the entry point of an exec execution would happen? When you say it's single threaded you mean the UI thread is blocked when there is a long computation ?
from ryven.
so that threading bridge code is pretty much dead code?
not dead code but not implementing threading right now
I was trying to figure out where it was being triggered
In a few places, it's a ryvencore-qt thing - primarily in FlowCommands.py
(see FlowUndoCommand
).
Also could you let me know where the entry point of an exec execution would happen?
That's happening in ryvencore. The current version of Ryven runs on ryvencore v0.3. An update doesn't happen without a reason, either direct interaction from the user (using the node), or something else that the user or node developer set up. In early versions, update messages were always passed from node output to node input directly (quite literally, the node output object calling the connection object, which then calls the node input object, which then triggers its node's update
method). This was gradually replaced by a central FlowExecutor
class, see here and here. This was standardized in the WIP ryvencore v0.4 which will power the next Ryven release, so everything will go through the FlowExecutor.
When you say it's single threaded you mean the UI thread is blocked when there is a long computation ?
yes, i.e. threading and concurrency should be built into the nodes themselves if it is needed.
from ryven.
Related Issues (20)
- Pypi release for arg parser? HOT 1
- how to integrate micro in latest version?
- How to use set var and get var?
- UI/UX ideas HOT 2
- Is it possible to officially upgrade to Qt6 & PySide6? HOT 1
- Question About Dataflow Mode vs Execute Mode HOT 9
- Is there a way to allow people to create their own nodes? HOT 2
- Qt platform plugin "xcb" HOT 1
- unable to install Ryven because of PySide2 HOT 2
- Nodes updating the values of the widgets on update?
- Update from ryvencore==0.3.1.2 to latest using ryvencore-qt==0.3.1.4 ?
- Python 3.11 TypeError: can only concatenate str (not "NoneType") to str HOT 1
- matrices not fully displaying HOT 2
- Problem with “Import Nodes” HOT 1
- Runtime update of a node with choices ? HOT 2
- Is there a way to know that a graph traversal is done? HOT 4
- Website ssl certificate has expired HOT 1
- Could not load the Qt platform plugin "windows" HOT 1
- Create a server for chatting
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 ryven.