event/MultiSocketMonitor: PrepareSockets() returns timeout
Simplify the API, don't use GLib specific integer type.
This commit is contained in:
		| @@ -101,7 +101,10 @@ public: | ||||
| 	} | ||||
|  | ||||
| protected: | ||||
| 	virtual void PrepareSockets(gcc_unused gint *timeout_r) {} | ||||
| 	/** | ||||
| 	 * @return timeout [ms] or -1 for no timeout | ||||
| 	 */ | ||||
| 	virtual int PrepareSockets() = 0; | ||||
| 	virtual bool CheckSockets() const { return false; } | ||||
| 	virtual void DispatchSockets() = 0; | ||||
|  | ||||
| @@ -114,7 +117,7 @@ public: | ||||
|  | ||||
| private: | ||||
| 	bool Prepare(gint *timeout_r) { | ||||
| 		PrepareSockets(timeout_r); | ||||
| 		*timeout_r = PrepareSockets(); | ||||
| 		return false; | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -204,7 +204,7 @@ public: | ||||
| private: | ||||
| 	void UpdateSockets(); | ||||
|  | ||||
| 	virtual void PrepareSockets(gcc_unused gint *timeout_r) override; | ||||
| 	virtual int PrepareSockets() override; | ||||
| 	virtual bool CheckSockets() const override; | ||||
| 	virtual void DispatchSockets() override; | ||||
| }; | ||||
| @@ -536,8 +536,8 @@ input_curl_perform(void) | ||||
| 	return true; | ||||
| } | ||||
|  | ||||
| void | ||||
| CurlSockets::PrepareSockets(gint *timeout_r) | ||||
| int | ||||
| CurlSockets::PrepareSockets() | ||||
| { | ||||
| 	UpdateSockets(); | ||||
|  | ||||
| @@ -556,12 +556,13 @@ CurlSockets::PrepareSockets(gint *timeout_r) | ||||
| 			   Let's use a lower limit of 10ms. */ | ||||
| 			timeout2 = 10; | ||||
|  | ||||
| 		*timeout_r = timeout2; | ||||
|  | ||||
| 		have_timeout = timeout2 >= 0; | ||||
| 	} else | ||||
| 		return timeout2; | ||||
| 	} else { | ||||
| 		g_warning("curl_multi_timeout() failed: %s\n", | ||||
| 			  curl_multi_strerror(mcode)); | ||||
| 		return -1; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| bool | ||||
|   | ||||
| @@ -44,7 +44,7 @@ public: | ||||
| 		:MultiSocketMonitor(_loop), mixer(_mixer) {} | ||||
|  | ||||
| private: | ||||
| 	virtual void PrepareSockets(gcc_unused gint *timeout_r) override; | ||||
| 	virtual int PrepareSockets() override; | ||||
| 	virtual void DispatchSockets() override; | ||||
| }; | ||||
|  | ||||
| @@ -83,8 +83,8 @@ alsa_mixer_quark(void) | ||||
| 	return g_quark_from_static_string("alsa_mixer"); | ||||
| } | ||||
|  | ||||
| void | ||||
| AlsaMixerMonitor::PrepareSockets(gcc_unused gint *timeout_r) | ||||
| int | ||||
| AlsaMixerMonitor::PrepareSockets() | ||||
| { | ||||
| 	int count = snd_mixer_poll_descriptors_count(mixer); | ||||
| 	if (count < 0) | ||||
| @@ -113,6 +113,8 @@ AlsaMixerMonitor::PrepareSockets(gcc_unused gint *timeout_r) | ||||
| 	for (auto i = pfds; i != end; ++i) | ||||
| 		if (i->events != 0) | ||||
| 			AddSocket(i->fd, i->events); | ||||
|  | ||||
| 	return -1; | ||||
| } | ||||
|  | ||||
| void | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann