System.Data.SQLite
Check-in [dabfe38a9e]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Add doc wording to clarify that the connection pool will not work properly in WPF applications. Pursuant to [393d954be0].
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: dabfe38a9e368644c8ee9c51fbfeff4687b50050
User & Date: mistachkin 2013-02-13 21:59:41
References
2013-02-13
22:00 Ticket [393d954be0] Deadlock in SQLiteConnectionPool status still Closed with 3 other changes artifact: 2714ec49ff user: mistachkin
Context
2013-02-15
21:43
Merge support for the INTEROP_LEGACY_CLOSE compile-time option to trunk. check-in: ec6819f0bf user: mistachkin tags: trunk
08:36
Add initial draft of the custom connection pool feature. check-in: 44b92245a6 user: mistachkin tags: customPool
01:14
Add the ability to select the legacy connection closing algorithm at compile-time. check-in: 2f90848c8e user: mistachkin tags: legacyClose
2013-02-13
21:59
Add doc wording to clarify that the connection pool will not work properly in WPF applications. Pursuant to [393d954be0]. check-in: dabfe38a9e user: mistachkin tags: trunk
03:06
Revise docs on how to obtain the source code. check-in: c13ff09745 user: mistachkin tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to System.Data.SQLite/SQLiteConnection.cs.

   192    192     /// <description>Enlist</description>
   193    193     /// <description><b>Y</b> - Automatically enlist in distributed transactions<br/><b>N</b> - No automatic enlistment</description>
   194    194     /// <description>N</description>
   195    195     /// <description>Y</description>
   196    196     /// </item>
   197    197     /// <item>
   198    198     /// <description>Pooling</description>
   199         -  /// <description><b>True</b> - Use connection pooling<br/><b>False</b> - Do not use connection pooling</description>
          199  +  /// <description>
          200  +  /// <b>True</b> - Use connection pooling.<br/>
          201  +  /// <b>False</b> - Do not use connection pooling.<br/><br/>
          202  +  /// <b>WARNING:</b> Setting this property to True should be avoided by
          203  +  /// applications that make use of WPF (either directly or indirectly) due
          204  +  /// to possible deadlocks that can occur during the finalization of some
          205  +  /// WPF objects.
          206  +  /// </description>
   200    207     /// <description>N</description>
   201    208     /// <description>False</description>
   202    209     /// </item>
   203    210     /// <item>
   204    211     /// <description>FailIfMissing</description>
   205    212     /// <description><b>True</b> - Don't create the database if it does not exist, throw an error instead<br/><b>False</b> - Automatically create the database if it does not exist</description>
   206    213     /// <description>N</description>
................................................................................
  1163   1170       /// <description>Enlist</description>
  1164   1171       /// <description><b>Y</b> - Automatically enlist in distributed transactions<br/><b>N</b> - No automatic enlistment</description>
  1165   1172       /// <description>N</description>
  1166   1173       /// <description>Y</description>
  1167   1174       /// </item>
  1168   1175       /// <item>
  1169   1176       /// <description>Pooling</description>
  1170         -    /// <description><b>True</b> - Use connection pooling<br/><b>False</b> - Do not use connection pooling</description>
         1177  +    /// <description>
         1178  +    /// <b>True</b> - Use connection pooling.<br/>
         1179  +    /// <b>False</b> - Do not use connection pooling.<br/><br/>
         1180  +    /// <b>WARNING:</b> Setting this property to True should be avoided by
         1181  +    /// applications that make use of WPF (either directly or indirectly) due
         1182  +    /// to possible deadlocks that can occur during the finalization of some
         1183  +    /// WPF objects.
         1184  +    /// </description>
  1171   1185       /// <description>N</description>
  1172   1186       /// <description>False</description>
  1173   1187       /// </item>
  1174   1188       /// <item>
  1175   1189       /// <description>FailIfMissing</description>
  1176   1190       /// <description><b>True</b> - Don't create the database if it does not exist, throw an error instead<br/><b>False</b> - Automatically create the database if it does not exist</description>
  1177   1191       /// <description>N</description>

Changes to System.Data.SQLite/SQLiteConnectionPool.cs.

     7      7   
     8      8   namespace System.Data.SQLite
     9      9   {
    10     10     using System;
    11     11     using System.Collections.Generic;
    12     12     using System.Threading;
    13     13   
           14  +  /// <summary>
           15  +  /// This class should not be used by applications that make use of WPF
           16  +  /// (either directly or indirectly) due to possible deadlocks that can occur
           17  +  /// during finalization of some WPF objects.
           18  +  /// </summary>
    14     19     internal static class SQLiteConnectionPool
    15     20     {
    16     21       /// <summary>
    17     22       /// Keeps track of connections made on a specified file.  The PoolVersion dictates whether old objects get
    18     23       /// returned to the pool or discarded when no longer in use.
    19     24       /// </summary>
    20     25       internal class Pool