Comments (3)
Hey,
Yes unfortunately I've not made an effort to make very much thread safe in Cello but this is particularly bad.
I don't know if there is a way to get the exception behavior I wanted without using static variables but I'll have a little more of a think about it. An important thing I wanted for libCello was to have no Init
or Finalise
functions (or have any state to pass around).
One nasty way may be to introduce some fixes when we get around to finally adding Threads into the library. In which case we can store all the thread information we like on thread creation and destruction.
Anyway thanks for bringing this to my attention :)
- Dan
from cello.
As I mentioned before, this is easily fixed using thread-local storage for the exceptions-related global variables. To that end I made #36. The "downside" of using TLS is that, if the pthread is created inside the try
block and it throws an exception, that exception is not caught because TLS is cleaned on thread creation. But that's not really a problem, since in most cases the parent thread would probably exit from the try block before the child throws an exception anyway.
from cello.
Thanks. Didn't know about the thread local storage keywork. Cheers for the pull request :)
from cello.
Related Issues (20)
- Unexpected GC behavior with Tuple HOT 5
- Make install should use "install --mode=..." instead of "cp" HOT 2
- make install doesn't install the dynamic library
- How do one "extends" a type? HOT 3
- error: cast to pointer from integer of different size HOT 2
- pop semantics? HOT 3
- Append Char HOT 2
- MacOS: __dyld section not supported HOT 1
- Abstracting a scripting language's internal value types using Cello HOT 1
- Feature request : Lua->Cello transpiler
- Missing Git tag for 2.1.0 release HOT 2
- Can I make a wrapper for other languages?
- Add vcpkg installation instructions
- Question about Array
- Doesn't work with Emscripten HOT 2
- is the project alive? can I use it in my product? who develops forks based on Cello? HOT 3
- Moving objects between threads HOT 1
- Failed to compile on GCC 8.1.0
- Can you do a comparison to Nim and Nelua?
- new release? HOT 2
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 cello.