open_toontown_panda3d/panda/src
rdb 2e20a0f16e Implement awaitable thread-safe future for async operations
This introduces AsyncFuture as a new base class of AsyncTask.  It's modelled after asyncio's Future class, except that it is thread-safe and you can use result() to block the current thread waiting for the future to finish (of course this is not necessary for use with coroutines).

AsyncFuture should be used for any operation that finishes in the future, to get the benefit of awaitability within coroutines as well as a standard interface for querying status and results of the operation as well as cancelling it.  As such, it's been implemented in various places, including texture.prepare() and win.trigger_copy().

Note that AsyncFuture is intended to be used *once*; it cannot be used more than once.  As an example of how this works, tex.prepare() will return the same future as long as the prepare isn't complete, but when it is done, subsequent calls to tex.prepare() will return a new future.
2017-12-04 22:25:28 +01:00
..
android Separate out CPython calls from core libs; eliminate need for pystub 2016-07-20 14:30:41 +02:00
androiddisplay New file headers, new comment style 2016-02-17 17:47:48 +01:00
audio Implement awaitable thread-safe future for async operations 2017-12-04 22:25:28 +01:00
audiotraits Merge branch 'fix-audio-distance-factor' of github.com:nikolmiv/panda3d 2017-10-31 19:31:27 +01:00
awesomium New file headers, new comment style 2016-02-17 17:47:48 +01:00
bullet bullet: add bam serializability of remaining shapes 2017-11-08 01:53:53 +01:00
cftalk New file headers, new comment style 2016-02-17 17:47:48 +01:00
chan interrogate: more improvements to seq/map wrappers 2017-11-27 17:29:50 +01:00
char Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
cocoadisplay cocoa: fix broken mouse events in fullscreen on macOS (LP 1500026) 2017-07-10 19:53:53 +02:00
collada Also accept a .gz wherever a .pz file is accepted 2016-04-29 16:54:25 +02:00
collide interrogate: more improvements to seq/map wrappers 2017-11-27 17:29:50 +01:00
configfiles Cleanup .gitignore files 2016-10-30 20:06:12 -07:00
cull Add README.md files for various directories 2017-10-31 19:20:24 +01:00
device Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
dgraph Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
display Implement awaitable thread-safe future for async operations 2017-12-04 22:25:28 +01:00
distort Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
doc New file headers, new comment style 2016-02-17 17:47:48 +01:00
downloader Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
downloadertools Separate out CPython calls from core libs; eliminate need for pystub 2016-07-20 14:30:41 +02:00
dxgsg9 Add README.md files for various directories 2017-10-31 19:20:24 +01:00
dxml Fix a couple of compile warnings, reduce unnecessary includes 2016-06-23 22:59:50 +02:00
egg interrogate: more improvements to seq/map wrappers 2017-11-27 17:29:50 +01:00
egg2pg Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
egldisplay Remove X11-specific stuff from egldisplay, instead using x11display as common base 2016-03-19 18:46:10 +01:00
event Implement awaitable thread-safe future for async operations 2017-12-04 22:25:28 +01:00
express interrogate: simplify coercion code 2017-11-06 19:53:38 +01:00
ffmpeg ffmpeg: don't hide last frame of video 2017-01-09 23:10:51 +01:00
framework Merge branch 'release/1.9.x' 2016-09-28 00:14:21 +02:00
gles2gsg Support .ktx textures, ETC1/ETC2/EAC compression 2016-07-15 11:50:57 +02:00
glesgsg Support .ktx textures, ETC1/ETC2/EAC compression 2016-07-15 11:50:57 +02:00
glgsg New file headers, new comment style 2016-02-17 17:47:48 +01:00
glstuff Improvements for ShaderGenerator-based programs: 2017-10-18 11:16:29 +02:00
glxdisplay Merge branch 'release/1.9.x' 2016-12-25 22:47:22 +01:00
gobj Implement awaitable thread-safe future for async operations 2017-12-04 22:25:28 +01:00
grutil Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
gsgbase Improvements for ShaderGenerator-based programs: 2017-10-18 11:16:29 +02:00
iphone New file headers, new comment style 2016-02-17 17:47:48 +01:00
iphonedisplay New file headers, new comment style 2016-02-17 17:47:48 +01:00
linmath linmath: permit single-argument/fill value for UnalignedLVecBase4 2017-10-06 23:59:17 +02:00
mathutil Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
movies Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
nativenet Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
net Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
ode Fix various compile warnings and a few code consistency issues 2017-01-09 20:36:53 +01:00
osxdisplay New file headers, new comment style 2016-02-17 17:47:48 +01:00
pandabase New file headers, new comment style 2016-02-17 17:47:48 +01:00
parametrics interrogate: more improvements to seq/map wrappers 2017-11-27 17:29:50 +01:00
particlesystem Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
pgraph Implement awaitable thread-safe future for async operations 2017-12-04 22:25:28 +01:00
pgraphnodes interrogate: more improvements to seq/map wrappers 2017-11-27 17:29:50 +01:00
pgui Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
physics interrogate: more improvements to seq/map wrappers 2017-11-27 17:29:50 +01:00
physx Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
pipeline Implement awaitable thread-safe future for async operations 2017-12-04 22:25:28 +01:00
pnmimage Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
pnmimagetypes pnmimagetypes: introduce png-compression-level PRC variable 2017-08-31 13:03:17 +02:00
pnmtext Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
pstatclient Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
putil interrogate: more improvements to seq/map wrappers 2017-11-27 17:29:50 +01:00
recorder Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
rocket Assorted tweaks and compile warning fixes 2016-07-14 12:54:39 +02:00
skel New file headers, new comment style 2016-02-17 17:47:48 +01:00
speedtree Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
testbed Merge branch 'pr-pview-adjust-camera-clip' of git://github.com/eswartz/panda3d 2017-10-31 20:15:38 +01:00
text text: fix for certain versions of HarfBuzz 2017-11-20 20:40:51 +01:00
tform Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
tinydisplay cull: remove GeomMunger stored on CullableObject 2017-07-03 11:47:59 +02:00
vision interrogate: support static properties 2017-08-07 22:04:56 +02:00
vrpn Mark constructors 'explicit' for which coercion makes no sense 2017-11-06 19:47:38 +01:00
wgldisplay Backport various bugfixes from master, among which: 2016-06-07 14:40:27 +02:00
windisplay windisplay: fix origin not changing upon window being dragged 2017-09-19 19:16:48 +02:00
x11display x11: fix loading 24-bpp ico/cur image alpha with width 24 2017-08-29 23:51:15 +02:00
PACKAGE-DESC