Definition at line 385 of file method_worker.c.
386{
391 char cmd[128];
392
394
397
398
399
400
401
403
408
409
411
414
418
419
421 {
424
426
427
428
429
430
431
432
433
435
437 {
438
440
442
446 }
447
449 }
450
451
453
455
457 {
462 int worker;
463
464
465
466
467
468
469
472 {
473
474
475
476
477
478
480 }
481 else
482 {
483
485
486
490 {
492 break;
494 }
495 }
497
500
502 {
504
508
510 "worker %d processing IO",
512
513
514
515
516
517
519
520
521
522
523
524
525
526
529
530
531
532
533
535
538
539
540
541
542
543
544
545
546
547#ifdef USE_VALGRIND
548 {
551
552 for (
int i = 0;
i < iov_length;
i++)
554 }
555#endif
556
557
558
559
560
561
562
564
567 }
568 else
569 {
573 }
574
576
578 {
581 }
582 }
583
586}
void pgaio_io_process_completion(PgAioHandle *ioh, int result)
#define pgaio_debug_io(elevel, ioh, msg,...)
void pgaio_io_perform_synchronously(PgAioHandle *ioh)
int pgaio_io_get_iovec_length(PgAioHandle *ioh, struct iovec **iov)
void pgaio_io_reopen(PgAioHandle *ioh)
void AuxiliaryProcessMainCommon(void)
#define Assert(condition)
void EmitErrorReport(void)
ErrorContextCallback * error_context_stack
sigjmp_buf * PG_exception_stack
void ProcessConfigFile(GucContext context)
#define INJECTION_POINT(name, arg)
void SignalHandlerForShutdownRequest(SIGNAL_ARGS)
volatile sig_atomic_t ShutdownRequestPending
volatile sig_atomic_t ConfigReloadPending
void SignalHandlerForConfigReload(SIGNAL_ARGS)
void SetLatch(Latch *latch)
void ResetLatch(Latch *latch)
int WaitLatch(Latch *latch, int wakeEvents, long timeout, uint32 wait_event_info)
bool LWLockAcquire(LWLock *lock, LWLockMode mode)
void LWLockRelease(LWLock *lock)
void LWLockReleaseAll(void)
#define VALGRIND_MAKE_MEM_UNDEFINED(addr, size)
static uint32 pgaio_worker_submission_queue_depth(void)
static void pgaio_worker_error_callback(void *arg)
#define IO_WORKER_WAKEUP_FANOUT
static void pgaio_worker_register(void)
static PgAioWorkerControl * io_worker_control
static int pgaio_worker_submission_queue_consume(void)
static int pgaio_worker_choose_idle(void)
#define RESUME_INTERRUPTS()
#define START_CRIT_SECTION()
#define CHECK_FOR_INTERRUPTS()
#define HOLD_INTERRUPTS()
#define END_CRIT_SECTION()
void procsignal_sigusr1_handler(SIGNAL_ARGS)
static void set_ps_display(const char *activity)
struct ErrorContextCallback * previous
void(* callback)(void *arg)
PgAioWorkerSlot workers[FLEXIBLE_ARRAY_MEMBER]
#define WL_EXIT_ON_PM_DEATH
References ErrorContextCallback::arg, Assert, AuxiliaryProcessMainCommon(), ErrorContextCallback::callback, CHECK_FOR_INTERRUPTS, ConfigReloadPending, DEBUG4, die, EmitErrorReport(), END_CRIT_SECTION, error_context_stack, fb(), HOLD_INTERRUPTS, i, PgAioWorkerControl::idle_worker_mask, INJECTION_POINT, PgAioCtl::io_handles, io_worker_control, IO_WORKER_WAKEUP_FANOUT, PgAioWorkerSlot::latch, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), LWLockReleaseAll(), Min, MyIoWorkerId, MyLatch, PG_exception_stack, pgaio_ctl, pgaio_debug_io, pgaio_io_get_iovec_length(), pgaio_io_perform_synchronously(), pgaio_io_process_completion(), pgaio_io_reopen(), pgaio_worker_choose_idle(), pgaio_worker_error_callback(), pgaio_worker_register(), pgaio_worker_submission_queue_consume(), pgaio_worker_submission_queue_depth(), PGC_SIGHUP, pqsignal, ErrorContextCallback::previous, proc_exit(), ProcessConfigFile(), procsignal_sigusr1_handler(), ResetLatch(), RESUME_INTERRUPTS, set_ps_display(), SetLatch(), ShutdownRequestPending, SIGALRM, SIGHUP, SignalHandlerForConfigReload(), SignalHandlerForShutdownRequest(), SIGPIPE, SIGUSR1, SIGUSR2, sprintf, START_CRIT_SECTION, UnBlockSig, VALGRIND_MAKE_MEM_UNDEFINED, WaitLatch(), WL_EXIT_ON_PM_DEATH, WL_LATCH_SET, and PgAioWorkerControl::workers.