Comments (4)
Looks like this commit is the culprit: aa72878?diff=split
from txmongo.
You are right, it is not possible to wait for deferred in buildProtocol
. But it's ok: deferred execution of _initializeProto
ends with one of calls:
setInstance(proto)
. This notifies listeners, registered vianotifyReady
, and this connection comes to play within the Pool.proto.fail(e)
, which in part callsproto.transport.loseConnection
which leads toConnection.clientConnectionLost
and causesConnection.retryNextHost
call.
@inlineCallbacks
is used on _initializeProto
just to support yields
inside itself, not to return some meaningful deferred.
from txmongo.
No, it is inlineCallbacks
that unwinds generator until its end, not yield
ed call.
inlineCallbacks
makes function return Deferred
which fires when function ends. There are no means how yield
can assist function execution because it only receives that Deferred. It only waits until it is ready.
Consider following example:
@defer.inlineCallbacks
def f():
print 'before'
d = defer.Deferred()
reactor.callLater(3, d.callback, None)
yield d
print 'after'
reactor.stop()
f()
reactor.run()
It runs f()
to end although its execution is not waited.
from txmongo.
OK thanks so calling an inlinecallback without yield, is sort of a fire-and-forget
Thanks for educating me !
from txmongo.
Related Issues (20)
- In disconnect: RuntimeError: dictionary changed size during iteration HOT 2
- When txmongo fails to connect mongodb, there is a memory leak HOT 8
- latest txmongo does not work with pymongo 3.7 HOT 3
- do not connect to mongodb+srv:// scheme HOT 1
- Does txmongo support compressors option? HOT 1
- builtins.AttributeError: '_CaseInsensitiveDictionary' object has no attribute 'copy' HOT 3
- Crash create_index: pymongo.errors.OperationFailure: cannot write to 'remains.system.indexes' HOT 2
- AssertionError: Tried to stop a LoopingCall that was not running. HOT 3
- txmongo not working with azure cosmos db HOT 19
- There should be a limit on the number of retries HOT 1
- insert_many does not work properly HOT 6
- maxIdleTimeMS support HOT 4
- does txmongo support transaction? HOT 2
- Proposing a PR to fix a few small typos HOT 1
- insert_many: unexpected keyword argument 'bypass_document_validation' in calling pymongo `_Bulk` HOT 2
- Import error with PyMongo==4.1.1. HOT 3
- Incompatible with mongodb >= 5.1 due to usage of deprecated `OP_QUERY` commands HOT 2
- txmongo with DocumentDB
- Incompatible with any version of DocumentDB HOT 3
- pymongo.errors.OperationFailure: TxMongo: not authorized for query on foo.test HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from txmongo.