For Mason (and everybody else who might be interested), here are condensed results of the OmniThreadLibrary Webinars Survey.
- Typical approaches of using OTL in real life, not just message exchange, as it is in most examples.
- OTL is great thing for Delphi world, but for now it too hard-to-start thing, due to wide range of mistakes you can make using it.
- How to send and receive JSON data via HTTP requests in the background effectively while even providing user feedback.
- Thread (thread goup) / cpu affinity
- Thread (thread goup) scheduling / prioritizing
- I would prefer to see a recorded webbinar. For questions about to pay for a webinar I have to ask my boss ;-)
- Communication between threads/tasks
- Threaded user interfaces
- Real world examples: thread pools, non blocking interface programming, thread pools
- Balancing between threads + events
- The Message Processing between Threads
- In addition to the four topics in Q1 (which are somewhat inter-related and all of interest to some degree), how about: “Multithreading in mobile applications" ?
- How OTL is wired together, how it works, what techniques it uses under the hood
- Also non-OTL related stuff... 1. Standard delphi Threading stuff 2. Kind of Best Practices (on standard delphi stuff)
- Like I've been wondering that your libs come with SpinLock inplementation, is it worth it on new OS or is it better in some case that Critical Section. I've seen also code of using WaitMultipleObjects, but never looked into it (looked smart way to solve things).
- How to pass data/signal multiple threads (hard to come up with example)...hmmm... Wait a sec... OK.. Maybe simple game. One thread for User Input, One form Game Logick, one for sound and one for dwawing (the Bitmap), and maybe program main thread showing stuff. It all should have low latency. (I think modern huge game engines work something like this to get all out of modern hardware... My try to make Tetris Clone in this way failed, have not looked into it very long time tough...
- Effective distributed multi thread/process servers
- Precision which components from the VCL, that should not be accessed from threads (without synchronizing).
- Debuging all multithread conditions. I.E. Race Conditions, Deadlocks, etc.
- Writing DLLs that are called from multiple threads of a calling application.
- Using threads in a DLL that is called from multiple threads of a calling application.
- Per object locking on huge amount of objects
- How to determine which type of multithreading to use. Please spend time differentiating the examples from each other.
- - how to use threads to run queries on database servers (especially Oracle) faster (for example queries on partitioned tables). I have used Oracle RDBMS pipes with well-tuned SQL statements so far but I am looking for alternatives on the client side.
- Multithreading and socket communication
- Using OmniThreadLibrary Framework Effectively
- Best practices for how to use OmniThreadLibrary.
- short first steps usage
- different OTL approach ( ways ) to the same problem - examples - this is advanced
- How does OmniThread Library compare / relate to other frameworks like in .net / C#? It would be good to see how things are done in e.g. .net/ C# and show similarities and differences with OmniThread Libraries. One item that comes to mind, is the "await / async" feature that you once explained on your blog. So more of those comparisons would be helpful.
- general programming tricks used in OTL
Survey participants came from the following countries (geolocation based on IP addresses):