Skip to content

Better handling of Future handles #54

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 172 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
172 commits
Select commit Hold shift + click to select a range
7e33bb8
Reimpleted the mapping between Future handles and FdbFuture<T> classe…
KrzysFR Jan 27, 2015
6c3c00a
A bit of refactoring and cleanup
KrzysFR Jan 28, 2015
9024f98
Merge branch 'master' into futures_ng
KrzysFR Feb 11, 2015
988df11
Moved future related files into a subfolder
KrzysFR Feb 11, 2015
6da27bd
Future handles are now back to an IntPtr so that can't be compared wi…
KrzysFR Feb 12, 2015
0b5ae13
Added #if DEBUG_FUTURES to on/off custom logging in all the future ca…
KrzysFR Feb 12, 2015
b030e29
Detect when the main future callback is not called from the network t…
KrzysFR Feb 13, 2015
940dade
Switched over to the refac_tuples branch
KrzysFR Feb 16, 2015
79552df
Added the CancellationToken.RegisterWithoutEC() hack to not pay the c…
KrzysFR Feb 16, 2015
990b053
No custom CancellationToken for regular read operations on Snapshotte…
KrzysFR Feb 16, 2015
e845b03
FutureContext: make sure to remove the future from the context when i…
KrzysFR Feb 16, 2015
8eafc11
Merge branch 'refac_tuples' into futures_ng
KrzysFR Feb 20, 2015
fe67fa5
Slice: simplified SliceHelper to always call memmove and memcmp
KrzysFR Feb 23, 2015
4b72de6
Slice: fixed cases where count = 0
KrzysFR Feb 23, 2015
27eade2
Slice: made sure that the x64 code generated by the JIT is the fastes…
KrzysFR Feb 23, 2015
580ea33
Slice: using a singleton for Encoding.UTF8 + use direct string ctors …
KrzysFR Feb 23, 2015
9ec2c56
Merge branch 'refac_tuples' into futures_ng
KrzysFR Feb 28, 2015
f312f55
Merge branch 'refac_tuples' into futures_ng
KrzysFR Mar 6, 2015
1e0af93
Merge branch 'refac_tuples' into futures_ng
KrzysFR Mar 6, 2015
df01e4d
Merge branch 'refac_tuples' into futures_ng
KrzysFR Mar 6, 2015
08a9d60
Merge branch 'refac_tuples' into futures_ng
KrzysFR Mar 13, 2015
b18c8c9
Merge pull request #42 from Doxense/refac_tuples
KrzysFR Apr 3, 2015
ab8910e
Updated README with the new tuple and subspace syntax
KrzysFR Apr 3, 2015
0766c1f
Fix nullref
alecocq Apr 10, 2015
d7f7ea3
Fix FdbTuple.Equals() : Equals() was comparing only first item
alecocq Apr 10, 2015
7ba2645
bugfix ColaRangeDictionary
qcastelain Apr 17, 2015
ae5beb0
ColaRangeDictionary => ajout de la methode delete qui supprime un int…
qcastelain Apr 20, 2015
7450d97
fix du delete
qcastelain Apr 20, 2015
b0600d5
xml doc on ColaRangeDictionary.Remove + TranslateAfter becomes private
qcastelain Apr 20, 2015
4b7c318
Fix potential issue in ComparisonHelper when comparing integers of di…
KrzysFR May 7, 2015
8dcbf91
#if out the inside of [Conditional] herlper methods
KrzysFR May 13, 2015
9b2d197
Ajout du MaxValue sur un Uuid128
gcastre Jun 3, 2015
0c3b736
Fixed FdbKeyRange.StartsWith(Slice.Empty)
KrzysFR Jun 4, 2015
039c3d9
Better ToString() on Uuid64
KrzysFR Jun 4, 2015
91dd3a7
Eat the exception when resizing the console screen fails
KrzysFR Jul 10, 2015
79dd0ef
[ItemNotNull] all the things!
KrzysFR Jul 23, 2015
900c1ba
Fix typo sucessfully => successfully
gcastre Sep 4, 2015
76ef8f0
R# des DebuggerDisplay
gcastre Nov 17, 2015
8e45c91
R# nameofification
gcastre Nov 18, 2015
cf0b8ff
[LOGS] Added prefix for Cancel and AddConflictRange
KrzysFR Apr 15, 2016
e976e02
dedup code
KrzysFR Apr 15, 2016
4e5c610
System.Collections.Immutable v1.1.36
KrzysFR Apr 15, 2016
fbcb0f4
Merge remote-tracking branch 'refs/remotes/origin/refac_tuples'
KrzysFR Apr 15, 2016
324cd82
Better error message if console is too small
KrzysFR Apr 28, 2016
44b2006
Fixed parsing bug in tiny json parser
KrzysFR Apr 28, 2016
ca12a90
Ajout du ItemCanBeNull sur ReadAsync
gcastre May 20, 2016
c7870de
Fixed bug in GetRange() LINQ queries where TargetBytes (limit in byte…
KrzysFR Jun 2, 2016
9a84827
Removed [ItemCanBeNull] annotation on db.ReadAsnc(...) because it cre…
KrzysFR Jun 22, 2016
89b4465
Removed all references to NuGet.targets from the .csproj
KrzysFR Jun 27, 2016
8b269e7
Fixed incorrect conversion from bool to double/float
KrzysFR Jul 15, 2016
fa93536
Fail if network is already setup
KrzysFR Jul 15, 2016
4f74cc5
Rename FULL_DEBUG + remove use of #undef
KrzysFR Jul 27, 2016
b6c79bc
Typo
KrzysFR Jul 27, 2016
776b910
Switch to .NET Framework 4.6.1
KrzysFR Jul 29, 2016
3437646
Add ToHashsetAsync method
gcastre Aug 18, 2016
9ae6a40
Merge remote-tracking branch 'refs/remotes/origin/master' into dev/po…
KrzysFR Aug 19, 2016
b1a10d5
FailFast if network already set up in reused process
KrzysFR Aug 19, 2016
380cafd
Fail Fast if network already set up
KrzysFR Aug 22, 2016
a1af42e
Merge remote-tracking branch 'refs/remotes/origin/master' into dev/po…
KrzysFR Aug 26, 2016
8f1e844
Add a bunch of test cases
KrzysFR Aug 26, 2016
7cb43db
Fix old test cases that required API 300
KrzysFR Apr 20, 2018
11f333b
Target API v300 by default
KrzysFR Apr 20, 2018
c28c805
Moved exotic test cases to their own file and disable them by default
KrzysFR Apr 20, 2018
1961c3c
Update R# settings
KrzysFR Apr 20, 2018
14ffdbd
Removed notice from README. We're back! \o/
KrzysFR Apr 20, 2018
a3ea8bc
Removed experimental "Memory Store"
KrzysFR Apr 20, 2018
833b458
Renamed IAsyncEnumerator<T>.MoveNext into MoveNextAsync (cf Issue #64)
KrzysFR Apr 20, 2018
a5eba14
Updated .editorconfig
KrzysFR Apr 20, 2018
dcd36b3
First pass at merging back the changes that happened outside the repo…
KrzysFR Apr 20, 2018
849be96
Renamed all FdbKeySomething into KeySomething
KrzysFR Apr 20, 2018
0c9fb82
Added missing custom R# attributes [Positive] and [PowerOfTwo]
KrzysFR Apr 20, 2018
04054b1
Removed IFdbKey interface
KrzysFR Apr 20, 2018
678e17c
Code cleanup
KrzysFR Apr 20, 2018
40dce5a
Updated Copyright year to 2018
KrzysFR Apr 20, 2018
058f155
Renamed Fdb Tuples to drop the "Fdb" prefix
KrzysFR Apr 20, 2018
53ec712
Refactored and renamed IFdbSubspaces into IKeySpaces
KrzysFR Apr 21, 2018
ed9e7e6
Shorten all "cancellationToken" parameters into "ct"
KrzysFR Apr 21, 2018
c1f523f
Changed the namespace of "core" types into "FoundationDB" (from "Foun…
KrzysFR Apr 21, 2018
370ddea
AsyncLinq refactored and updated to the latest version of the upstrea…
KrzysFR Apr 21, 2018
c557c82
Fixed indentation
KrzysFR Apr 21, 2018
742a090
Updated all links to the new web site
KrzysFR Apr 21, 2018
80f4312
[BREAKING API CHANGE] Upgraded the low level framework (Slice, Tuples…
KrzysFR Apr 22, 2018
f8344ee
Update NUnit to 3.10.1
KrzysFR Apr 22, 2018
fedee7d
Update some tests to take advantage of NUnit 3.x
KrzysFR Apr 22, 2018
338d171
Update some test dependencies to the latest versions
KrzysFR Apr 22, 2018
5597c11
Bumped version number to v5.1.0-alpha1
KrzysFR Apr 22, 2018
dc4420a
cancellationToken => ct
KrzysFR Apr 22, 2018
bbde561
Replace all occurrences of Assert.Throws<..>(async lambda) into Asser…
KrzysFR Apr 22, 2018
b57a86c
UnitTests: Use TextContext.Progress by logging by default instead of …
KrzysFR Apr 22, 2018
e08ea4d
Convert projects to .NET Standard 2.0
KrzysFR Apr 22, 2018
2bd6e54
Fixed Test_Read_Isolation_From_Writes() by enabling the SnapshotReadY…
KrzysFR Apr 22, 2018
db1d417
Misc cleanup
KrzysFR Apr 22, 2018
012146d
[BREAKING CHANGE] Landed the new API for KeySubspaces and partitions
KrzysFR Apr 22, 2018
4d816ce
Use the proper cancellation token for paging and result iterators
KrzysFR Apr 22, 2018
e03215a
Removed IFdbKey interface
KrzysFR Apr 22, 2018
b06c24f
Fixed equality comparison of tuples containing tuples
KrzysFR Apr 23, 2018
7a49e01
Fixed usings and copyrights
KrzysFR Apr 23, 2018
313235d
Moved back KeyRange / KeySelector / FdbKey into the FoundationDB.Clie…
KrzysFR Apr 23, 2018
777fec9
code cleanup
KrzysFR Apr 23, 2018
cd817d2
Don't display the column guids in DEBUG + code cleanup
KrzysFR Apr 23, 2018
ff27216
Cleanup, and nest KeyRangeComparer instead of KeyRange
KrzysFR Apr 23, 2018
883a2d9
Mark all candidates for readonly struct with a comment
KrzysFR Apr 23, 2018
2386226
code cleanup
KrzysFR Apr 23, 2018
dcee767
Mark Optional<T> as obsolete (redundant with Maybe<T>)
KrzysFR Apr 23, 2018
34a699c
Use "readonly struct" modifier for all immutable structs (Slice, STup…
KrzysFR Apr 23, 2018
94267eb
code cleanup
KrzysFR Apr 23, 2018
b74e2f7
Fix key serilization tests for byte string in tuples
KrzysFR Apr 23, 2018
807b9aa
Updated minimum required version of Visual Studio in README (15.5+)
KrzysFR Apr 24, 2018
7f10cc8
Missed some copyright headers
KrzysFR Apr 24, 2018
f5fb25f
Optimized Slice.ToHexaString
KrzysFR Apr 24, 2018
f763c7c
Mark older Tuple byte prefix as obsolete in Tuple Encoding
KrzysFR Apr 25, 2018
06c75aa
Bump max supported API version to 510 so that we can actually select …
KrzysFR Apr 25, 2018
0cff2f2
Build with full pdb symbols (in Debug) so that we can debug and break…
KrzysFR Apr 25, 2018
2b6737c
Add first prototype of VersionStamp struct
KrzysFR Apr 25, 2018
8192bb7
Add bascic support for VersionStamps to Tuple Encoder
KrzysFR Apr 25, 2018
2ccce08
Add initial support for fdb_transaction_get_versionstamp and add SetS…
KrzysFR Apr 25, 2018
1cb6819
Re-add unit test on the Tuple Encoding that were dropped before + add…
KrzysFR Apr 25, 2018
2677585
Add reference to System.ValueTuples v4.4 and enable support for Value…
KrzysFR Apr 25, 2018
61f3716
Add first-class support for ValueTuples with subspaces
KrzysFR Apr 25, 2018
cf764bd
Use new indexer on TypedKeySubspace.Keys
KrzysFR Apr 25, 2018
0b7a53d
Use Tuples instead of KeyValuePair in some places
KrzysFR Apr 25, 2018
10855a8
Add more tuple usages
KrzysFR Apr 26, 2018
26b359a
Add a base IKeyEncoder interface that links encoders and Encoding
KrzysFR Apr 26, 2018
2bcbd45
Add overloads to simplify creating and copying subspaces with specifi…
KrzysFR Apr 26, 2018
505d3ab
Refactor the core Key Encoders and Tuple Packers to use ValueTuple
KrzysFR Apr 26, 2018
da5ace0
Get rid of #if ENABLE_VALUETUPLES, ValueTuple support is now implicit
KrzysFR Apr 26, 2018
ce869dd
Use the literal tuple syntax everywhere possible
KrzysFR Apr 26, 2018
da34f2a
Replace some STuple uses with ValueTuple
KrzysFR Apr 26, 2018
07fa586
fix or remove old xml comments
KrzysFR Apr 26, 2018
a94de41
Rename some KeySubspace.FromKey(..) into CreateDynamic(..) or CreateT…
KrzysFR Apr 26, 2018
f22e9ce
Merge pull request #73 from Doxense/dev/valuetuples
KrzysFR Apr 26, 2018
cc3193f
Merge branch 'master' into dev/versionstamps
KrzysFR Apr 26, 2018
5051b06
Fix unpacking of VersionStamps in tuple (when using the boxed API)
KrzysFR Apr 26, 2018
6ae022a
Add the logic on transactions to generate custom placeholder stamps (…
KrzysFR Apr 26, 2018
3e04cbd
git: ignore JetBrains Ryder and OSX-specific files
abdullin Apr 27, 2018
9e832a0
Merge pull request #76 from bitgn/osx-gitignore
KrzysFR Apr 27, 2018
cecf0e4
SetVersionStampedKey will automatically detect the location of the ve…
KrzysFR Apr 27, 2018
da593a6
Add overload SetVersionStampedKey(...) where the caller can manually …
KrzysFR Apr 27, 2018
7919499
Fix parsing of incomplete VersionStamps, using the highest bit to dis…
KrzysFR Apr 27, 2018
06f8c42
Merge pull request #72 from Doxense/dev/versionstamps
KrzysFR Apr 27, 2018
906b54b
Move files around to have all "shared framework" types under the Shar…
KrzysFR Apr 27, 2018
57e58e8
Move StringConverters to new namespace Doxense.Serialization
KrzysFR Apr 27, 2018
7d91acc
Decouple STuple<..> from TuPack by removing ITupleSerializable support
KrzysFR Apr 27, 2018
795b65e
Re-optimize serialization of STuple<..> and ValueTuple<..> by having …
KrzysFR Apr 27, 2018
d4ed6f1
Fix VersionStamp tests
KrzysFR Apr 27, 2018
d34ee9d
Re-enable tuple serialization tests for ValueTuple
KrzysFR Apr 27, 2018
540a6ff
disable signing FoundationDB.Client.csproj on non-win
abdullin Apr 27, 2018
827e189
Merge pull request #78 from bitgn/no_sign
KrzysFR Apr 27, 2018
8d4479b
Use a better source of randomness for the VersionStamp random tokens
KrzysFR Apr 27, 2018
8c831bd
Use TuPack.Encoding directly, instead of using TypeSystem.Tuples or D…
KrzysFR Apr 27, 2018
6b73213
[BREAKING CHANGE] Remove TypeSystem completely, and add AsDynamic(..)…
KrzysFR Apr 27, 2018
2cf31c8
Remove TypeSystem altogether
KrzysFR Apr 27, 2018
c3ae903
Decouple KeyRange from the key encoders by representing them as a (Sl…
KrzysFR Apr 27, 2018
eb00e3c
Refactor Tuple Key/Value encoders
KrzysFR Apr 27, 2018
d5b9f46
Decouple KeyValueEncoders from the rest, introduce IValueEncoding and…
KrzysFR Apr 27, 2018
af009ac
Move TaskHelpers into namespace Doxense.Threading.Tasks
KrzysFR Apr 27, 2018
3a392b0
Do not use direct Slice constructor
KrzysFR Apr 27, 2018
d7f3726
Cleanup code
KrzysFR Apr 27, 2018
69f0359
Remove usage of Slice.DefaultEncoding
KrzysFR Apr 27, 2018
5299aac
loading: on non-windows use libdl to load libfdb_c
abdullin Apr 27, 2018
26667b0
Add platform-specific library closing methods
abdullin Apr 27, 2018
3baba6c
clean-up static FdbNative ctor to support osx and linux
abdullin Apr 27, 2018
1cbc073
Simplify library loading on non-windows
abdullin Apr 28, 2018
7a257b0
Merge pull request #79 from bitgn/libdl-loader
KrzysFR Apr 28, 2018
007d667
Replace Optional<T> with tuple (T, bool) so simplify the code
KrzysFR Apr 28, 2018
fda40e5
Remove old NET461 csproj
KrzysFR Apr 28, 2018
30d88f0
Fix FAKE build script
KrzysFR Apr 28, 2018
fb86dc8
Add slow and fast variants of Test_Can_Batch_Aggregate_xxx() tests
KrzysFR Apr 28, 2018
bad5c86
Update Test_Fdb_GetErrorMessage with new error strings
KrzysFR Apr 28, 2018
b2dc4e9
Add support for "ssd-2" engine mode
KrzysFR Apr 28, 2018
23bdb08
Fix a couple of tests
KrzysFR Apr 28, 2018
a35a15f
Merge branch 'master' into futures_ng
KrzysFR Apr 28, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
37 changes: 35 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,5 +1,38 @@
; 4-column tab indentation
[*.cs]
# Editor Config for foundationdb-dotnet-client

# root
root = true


# Global defaults
[*]
end_of_line = crlf
insert_final_newline = true
indent_style = tab
indent_size = 4

[*.cs]
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = false
csharp_indent_labels = one_less_than_current
csharp_indent_switch_labels = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_prefer_braces = true
csharp_preserve_single_line_statements = true
csharp_space_after_cast = true
csharp_space_after_comma = true
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_style_conditional_delegate_call = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_throw_expression = true:suggestion
dotnet_sort_system_directives_first = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_explicit_tuple_names = true:warning
dotnet_style_null_propagation = true:suggestion
dotnet_style_qualification_for_method = false:suggestion

csharp_style_inlined_variable_declaration = true:suggestion
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ _ReSharper*/
*.vssscc
$tf*/

nuget/
.nuget/
packages/
*.ide/
.vs/
Expand All @@ -37,4 +37,10 @@ fdb_c.dll
# Build tools and artifacts
/build/tools/
/build/output/
/build/.fake

# JetBrains
.idea

# OSX
.DS_Store
6 changes: 0 additions & 6 deletions .nuget/NuGet.Config

This file was deleted.

Binary file removed .nuget/NuGet.exe
Binary file not shown.
144 changes: 0 additions & 144 deletions .nuget/NuGet.targets

This file was deleted.

12 changes: 5 additions & 7 deletions Common/VersionInfo.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#region BSD Licence
/* Copyright (c) 2013-2015, Doxense SAS
/* Copyright (c) 2013-2018, Doxense SAS
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down Expand Up @@ -27,15 +27,13 @@ DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
#endregion

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

[assembly: AssemblyCompany("Doxense")]
[assembly: AssemblyProduct("FoundationDB.Client")]
[assembly: AssemblyCopyright("Copyright � Doxense SAS 2013-2015")]
[assembly: AssemblyCopyright("Copyright � Doxense SAS 2013-2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

[assembly: AssemblyVersion("0.9.9.0")] //note: Only change this when doing breaking API changes!
[assembly: AssemblyFileVersion("0.9.8.0")] //note: change this to "x.y.revision.build_step" in a build step of your favorite C.I. build server
[assembly: AssemblyInformationalVersion("0.9.9-pre")] //note: this is the version seen by NuGet, add "-alpha"/"-beta"/"-rc1" at the end to create pre-release packages
[assembly: AssemblyVersion("5.1.0.0")] //note: Only change this when doing breaking API changes!
[assembly: AssemblyFileVersion("5.1.0.0")] //note: change this to "x.y.revision.build_step" in a build step of your favorite C.I. build server
[assembly: AssemblyInformationalVersion("0.5.1-alpha1")] //note: this is the version seen by NuGet, add "-alpha"/"-beta"/"-rc1" at the end to create pre-release packages
6 changes: 3 additions & 3 deletions FdbBurner/App.config
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
</configuration>
</configuration>
2 changes: 1 addition & 1 deletion FdbBurner/FdbBurner.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>FdbBurner</RootNamespace>
<AssemblyName>FdbBurner</AssemblyName>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
Expand Down
20 changes: 10 additions & 10 deletions FdbBurner/Program.cs
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
using FoundationDB.Client;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;


namespace FdbBurner
{
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using FoundationDB.Client;

public class Program
{
Expand Down
6 changes: 3 additions & 3 deletions FdbShell/App.config
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
</configuration>
</configuration>
Loading