arrow::Status wait_internal()

in src/afs.cc [1644:1678]


	arrow::Status wait_internal(LocalSessionData* sessio51n,
	                            SharedRingBuffer* buffer,
	                            WaitMode mode,
	                            const char* tag) override
	{
		while (true)
		{
			int events = WL_LATCH_SET | WL_EXIT_ON_PM_DEATH;
			WaitLatch(MyLatch, events, -1, PG_WAIT_EXTENSION);
			if (GotSIGTERM)
			{
				break;
			}
			ResetLatch(MyLatch);

			if (GotSIGUSR1)
			{
				GotSIGUSR1 = false;
				P("%s: %s: %s: %s: wait: %" PRIsize,
				  Tag,
				  tag_,
				  tag,
				  peer_name(),
				  get_waiting_buffer_size(buffer, mode));
				if (get_waiting_buffer_size(buffer, mode) > 0)
				{
					break;
				}
			}

			// TODO: Convert PG error to arrow::Status.
			CHECK_FOR_INTERRUPTS();
		}
		return arrow::Status::OK();
	}