Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "threadpool."
-
I turned a 20 hour per month task into a 150ms database query.
I feel like a fucking super hero.
FYI my super hero name is ThreadPool (see past rant)5 -
Introducing Marvel's newest anti-hero...Threadpool. He can do three things at once...I never said it was a big thread pool. He must get revenge on his nemesis Task Manager with the help of his side kick Q.
-
When I was in college I used to think deadlock is just a theory concept. First c++ project on my job and I already have one now. 🙃
-
promises in JavaScript have really spoiled me
it's the most optimal way to do async without leaving much on the table
there's a promises library in rust and the guy who wrote it says it sucks because it spawns new thread every time you execute a bunch of promises
and I finally, through my fogged brain, managed to get the bright idea to write what I want to make in rust in JavaScript and holy hell it's sexy to work with promises. there's no performance left on the table. you do things as fast as possible
but if I take this JavaScript usability code I made and make it possible syntax-wise in rust I don't see how I would be able to do it without starting new operating system threads every time I execute any promises (or set)
I can take the overhead hit but this sounds retarded
and this isn't even touching upon how in rust everything needs to have a predetermined data type. so you can do lambdas and capture variables and send in variables into a thread that way, but to return the return object must be a consistent type (synchronizing the order data was sent in to the data sent out aside, haven't written that yet should be fine though)
which is fine if you are making a threadpool and it'll all be returning one data type
but this means you can't reuse a threadpool you made elsewhere in the program
the only thing that could fix async is to literally be compiler-enabled. it would have to work like generics and automatically make an enum of every type that can return, and only then could you re-use the threadpool23 -
throw new exception("There were not enough free threads in the ThreadPool to complete the operation.");
Brain == toast -
my first attempt at promise-like threads without the downside of the incumbent promises library offered in rust, where it spawns a new thread for every promise, appears to be a success
it looks like shit but I did not expect this to work so fast, I feel strange
so now I have a threadpool and i can ask it to take any number of tasks in any order, all of which can spawn more tasks, and it'll get them all done using best available threads rapidly. nice
I do have to synchronize them all at the end but I sorta half figured out how I'm gonna do that but it might not be the most optimal way idk
and there can't be any return data types
so everything has to wrapped in fucking Arcs and Mutexes, both going in and out (or maybe I can fix that? I don't know)
I'm expecting to get locked and shit blowing up. I'm probably being pessimistic
everyone always says threads hard and scary but anytime I touched them in other languages I didn't have issues. maybe threads hard in lower level languages and I'm about to find out these issues? 😖
*expects omens*
monster big, expect scary. things look fine. alertness level paranoid, nothing happens probably3