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 Unified Diffs Ignore Whitespace Patch

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

192
193
194
195
196
197
198


199





200
201
202
203
204
205
206
....
1163
1164
1165
1166
1167
1168
1169


1170





1171
1172
1173
1174
1175
1176
1177
  /// <description>Enlist</description>
  /// <description><b>Y</b> - Automatically enlist in distributed transactions<br/><b>N</b> - No automatic enlistment</description>
  /// <description>N</description>
  /// <description>Y</description>
  /// </item>
  /// <item>
  /// <description>Pooling</description>


  /// <description><b>True</b> - Use connection pooling<br/><b>False</b> - Do not use connection pooling</description>





  /// <description>N</description>
  /// <description>False</description>
  /// </item>
  /// <item>
  /// <description>FailIfMissing</description>
  /// <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>
  /// <description>N</description>
................................................................................
    /// <description>Enlist</description>
    /// <description><b>Y</b> - Automatically enlist in distributed transactions<br/><b>N</b> - No automatic enlistment</description>
    /// <description>N</description>
    /// <description>Y</description>
    /// </item>
    /// <item>
    /// <description>Pooling</description>


    /// <description><b>True</b> - Use connection pooling<br/><b>False</b> - Do not use connection pooling</description>





    /// <description>N</description>
    /// <description>False</description>
    /// </item>
    /// <item>
    /// <description>FailIfMissing</description>
    /// <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>
    /// <description>N</description>







>
>
|
>
>
>
>
>







 







>
>
|
>
>
>
>
>







192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
....
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
  /// <description>Enlist</description>
  /// <description><b>Y</b> - Automatically enlist in distributed transactions<br/><b>N</b> - No automatic enlistment</description>
  /// <description>N</description>
  /// <description>Y</description>
  /// </item>
  /// <item>
  /// <description>Pooling</description>
  /// <description>
  /// <b>True</b> - Use connection pooling.<br/>
  /// <b>False</b> - Do not use connection pooling.<br/><br/>
  /// <b>WARNING:</b> Setting this property to True should be avoided by
  /// applications that make use of WPF (either directly or indirectly) due
  /// to possible deadlocks that can occur during the finalization of some
  /// WPF objects.
  /// </description>
  /// <description>N</description>
  /// <description>False</description>
  /// </item>
  /// <item>
  /// <description>FailIfMissing</description>
  /// <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>
  /// <description>N</description>
................................................................................
    /// <description>Enlist</description>
    /// <description><b>Y</b> - Automatically enlist in distributed transactions<br/><b>N</b> - No automatic enlistment</description>
    /// <description>N</description>
    /// <description>Y</description>
    /// </item>
    /// <item>
    /// <description>Pooling</description>
    /// <description>
    /// <b>True</b> - Use connection pooling.<br/>
    /// <b>False</b> - Do not use connection pooling.<br/><br/>
    /// <b>WARNING:</b> Setting this property to True should be avoided by
    /// applications that make use of WPF (either directly or indirectly) due
    /// to possible deadlocks that can occur during the finalization of some
    /// WPF objects.
    /// </description>
    /// <description>N</description>
    /// <description>False</description>
    /// </item>
    /// <item>
    /// <description>FailIfMissing</description>
    /// <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>
    /// <description>N</description>

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

7
8
9
10
11
12
13





14
15
16
17
18
19
20

namespace System.Data.SQLite
{
  using System;
  using System.Collections.Generic;
  using System.Threading;






  internal static class SQLiteConnectionPool
  {
    /// <summary>
    /// Keeps track of connections made on a specified file.  The PoolVersion dictates whether old objects get
    /// returned to the pool or discarded when no longer in use.
    /// </summary>
    internal class Pool







>
>
>
>
>







7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

namespace System.Data.SQLite
{
  using System;
  using System.Collections.Generic;
  using System.Threading;

  /// <summary>
  /// This class should not be used by applications that make use of WPF
  /// (either directly or indirectly) due to possible deadlocks that can occur
  /// during finalization of some WPF objects.
  /// </summary>
  internal static class SQLiteConnectionPool
  {
    /// <summary>
    /// Keeps track of connections made on a specified file.  The PoolVersion dictates whether old objects get
    /// returned to the pool or discarded when no longer in use.
    /// </summary>
    internal class Pool