@@ -279,13 +279,18 @@ pub unsafe extern "C" fn cass_session_execute_batch(
279
279
let mut state = batch_from_raw. state . clone ( ) ;
280
280
let batch_exec_profile = batch_from_raw. exec_profile . clone ( ) ;
281
281
282
+ let Some ( connected_session) = session_guard. connected . as_ref ( ) else {
283
+ return CassFuture :: make_ready_raw ( Err ( (
284
+ CassError :: CASS_ERROR_LIB_NO_HOSTS_AVAILABLE ,
285
+ "Session is not connected" . msg ( ) ,
286
+ ) ) ) ;
287
+ } ;
288
+
282
289
let future = async move {
283
- let Some ( connected_session) = session_guard. connected . as_ref ( ) else {
284
- return Err ( (
285
- CassError :: CASS_ERROR_LIB_NO_HOSTS_AVAILABLE ,
286
- "Session is not connected" . msg ( ) ,
287
- ) ) ;
288
- } ;
290
+ let connected_session = session_guard
291
+ . connected
292
+ . as_ref ( )
293
+ . expect ( "This should have been handled synchronously!" ) ;
289
294
290
295
let session = & connected_session. session ;
291
296
@@ -338,6 +343,13 @@ pub unsafe extern "C" fn cass_session_execute(
338
343
) ) ) ;
339
344
} ;
340
345
346
+ let Some ( connected_session) = session_guard. connected . as_ref ( ) else {
347
+ return CassFuture :: make_ready_raw ( Err ( (
348
+ CassError :: CASS_ERROR_LIB_NO_HOSTS_AVAILABLE ,
349
+ "Session is not connected" . msg ( ) ,
350
+ ) ) ) ;
351
+ } ;
352
+
341
353
let paging_state = statement_opt. paging_state . clone ( ) ;
342
354
let paging_enabled = statement_opt. paging_enabled ;
343
355
let mut statement = statement_opt. statement . clone ( ) ;
@@ -366,15 +378,13 @@ pub unsafe extern "C" fn cass_session_execute(
366
378
let statement_exec_profile = statement_opt. exec_profile . clone ( ) ;
367
379
368
380
let future = async move {
369
- let Some ( cass_connected_session) = session_guard. connected . as_ref ( ) else {
370
- return Err ( (
371
- CassError :: CASS_ERROR_LIB_NO_HOSTS_AVAILABLE ,
372
- "Session is not connected" . msg ( ) ,
373
- ) ) ;
374
- } ;
375
- let session = & cass_connected_session. session ;
381
+ let connected_session = session_guard
382
+ . connected
383
+ . as_ref ( )
384
+ . expect ( "This should have been handled synchronously!" ) ;
385
+ let session = & connected_session. session ;
376
386
377
- let handle = cass_connected_session
387
+ let handle = connected_session
378
388
. get_or_resolve_profile_handle ( statement_exec_profile. as_ref ( ) )
379
389
. await ?;
380
390
@@ -500,6 +510,13 @@ pub unsafe extern "C" fn cass_session_prepare_from_existing(
500
510
) ) ) ;
501
511
} ;
502
512
513
+ let Some ( connected_session) = session_guard. connected . as_ref ( ) else {
514
+ return CassFuture :: make_ready_raw ( Err ( (
515
+ CassError :: CASS_ERROR_LIB_NO_HOSTS_AVAILABLE ,
516
+ "Session is not connected" . msg ( ) ,
517
+ ) ) ) ;
518
+ } ;
519
+
503
520
let statement = cass_statement. statement . clone ( ) ;
504
521
505
522
CassFuture :: make_raw (
@@ -511,12 +528,10 @@ pub unsafe extern "C" fn cass_session_prepare_from_existing(
511
528
}
512
529
} ;
513
530
514
- let Some ( connected_session) = session_guard. connected . as_ref ( ) else {
515
- return Err ( (
516
- CassError :: CASS_ERROR_LIB_NO_HOSTS_AVAILABLE ,
517
- "Session is not connected" . msg ( ) ,
518
- ) ) ;
519
- } ;
531
+ let connected_session = session_guard
532
+ . connected
533
+ . as_ref ( )
534
+ . expect ( "This should have been handled synchronously!" ) ;
520
535
521
536
let prepared = connected_session
522
537
. session
@@ -566,15 +581,20 @@ pub unsafe extern "C" fn cass_session_prepare_n(
566
581
) ) ) ;
567
582
} ;
568
583
584
+ let Some ( connected_session) = session_guard. connected . as_ref ( ) else {
585
+ return CassFuture :: make_ready_raw ( Err ( (
586
+ CassError :: CASS_ERROR_LIB_NO_HOSTS_AVAILABLE ,
587
+ "Session is not connected" . msg ( ) ,
588
+ ) ) ) ;
589
+ } ;
590
+
569
591
let query = Statement :: new ( query_str. to_string ( ) ) ;
570
592
571
593
let fut = async move {
572
- let Some ( connected_session) = session_guard. connected . as_ref ( ) else {
573
- return Err ( (
574
- CassError :: CASS_ERROR_LIB_NO_HOSTS_AVAILABLE ,
575
- "Session is not connected" . msg ( ) ,
576
- ) ) ;
577
- } ;
594
+ let connected_session = session_guard
595
+ . connected
596
+ . as_ref ( )
597
+ . expect ( "This should have been handled synchronously!" ) ;
578
598
579
599
let prepared = connected_session
580
600
. session
0 commit comments