Notes

1http://www.thedelphigeek.com/2010/03/speed-comparison-variant-tvalue-and.html

2http://www.cromis.net/blog/2010/03/tvalue-and-other-variable-like-implementation-tests/

3Read more at http://www.thedelphigeek.com/2012/07/asyncawait-in-delphi.html.

4Internal workings of the

5http://en.wikipedia.org/wiki/Critical_section, http://docwiki.embarcadero.com/Libraries/XE3/en/System.SyncObjs.TCriticalSection

6http://stackoverflow.com/questions/4856306/tthreadedqueue-not-capable-of-multiple-consumers, http://www.thedelphigeek.com/2011/05/tmonitor-bug.html

7http://docwiki.embarcadero.com/Libraries/XE3/en/System.SysUtils.TMultiReadExclusiveWriteSynchronizer, http://edn.embarcadero.com/article/28258

8A collision occurs when a writer wants to access an object with active readers or a reader wants to access an object with an active writer.

9Delphi implementation for this type of synchronisation primitive, TCountdownEvent, was added in release XE2.

10Initializing an object is, of course, not a problem at all if the object is only ever used in a single task.

11http://www.thedelphigeek.com/2013/04/threadsafe-lock-manager-1-design.html

12http://www.thedelphigeek.com/2013/04/threadsafe-lock-manager-2-code.html

13http://www.thedelphigeek.com/2013/04/threadsafe-lock-manager-3-test.html

14https://msdn.microsoft.com/en-us/library/windows/desktop/dd405503(v=vs.85).aspx

15https://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).aspx

16https://msdn.microsoft.com/en-us/library/windows/desktop/dd405495(v=vs.85).aspx

17http://blogs.msdn.com/b/pfxteam/archive/2012/04/12/10293335.aspx

18SamplesDelphiDatabaseIBXFishFact

19http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devwin32/fhxr18643_xml.html

20“IBTable1: Field ‘SPECIES_NO’ not found”