Sorry to hear you're having such bad luck with Hyper-Threading.
One resource for advice and information would be the IDS Hyper-Threading page under Software Technologies:Threading (http://www.intel.com/cd/ids/developer/asmo-na/eng/technologies/threading/hyperthreading/index.htm).
I'm not aware of any specific API functions that won't work with Hyper-Threading. The logical processor allows the operating system to schedule tasks from two thread that make the most use of the available processing resources. This interleaving of threads may be catching an error in the application that is not evident when the threads are sharing a single processor. Have you tried running your application on a dual-processor system to see how this may affect your application?
From your description, I would guess that you havea deadlock situation that is only evident when two threads are allowed to run at the same time. I've tested threaded codes on my development machine and seen no problems only to find major errors crop up when I use a different execution platform that runs the threads in a slightly different order. If you're using multiple locks, or other synchronization objects, be sure that threads are always accessing them in a consistent way. A debugger may be able to locate where the code is stalling (assuming that it does get started), or it might also cover up the problem by altering the timing to be more like a single processor.
I can't use ThreadChecker because my application is made in Delphi. Is there any known bugs with application compiled with Delphi and HT?
HT is revealing that a lot of programmersdid not have aclue on how to code correct, thread-safe code.
Yep, and I'm afraid that it will only get worse before it gets better. Which is why we have this Threading Forum and appreciate when readers post tips and tricks on how to do things right or better; things like using lock-free methods. :smileywink: