summaryrefslogtreecommitdiff
path: root/include/io/channel.h
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2016-09-30 11:50:18 +0100
committerDaniel P. Berrange <berrange@redhat.com>2016-10-27 09:13:10 +0200
commit20f4aa265ec8442be66f00ee3986a92018b44b7b (patch)
tree96a7f441c86c1c286f083571ab7dc27160b068f1 /include/io/channel.h
parentaf8096b2c3b16de3f6237f1ead6a657a7565272f (diff)
downloadqemu-20f4aa265ec8442be66f00ee3986a92018b44b7b.zip
io: add ability to set a name for IO channels
The GSource object has ability to have a name, which is useful when debugging performance problems with the mainloop event callbacks that take too long. By associating a name with a QIOChannel object, we can then set the name on any GSource associated with the channel. Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'include/io/channel.h')
-rw-r--r--include/io/channel.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/io/channel.h b/include/io/channel.h
index cf1c6223fa..32a9470794 100644
--- a/include/io/channel.h
+++ b/include/io/channel.h
@@ -79,6 +79,7 @@ typedef gboolean (*QIOChannelFunc)(QIOChannel *ioc,
struct QIOChannel {
Object parent;
unsigned int features; /* bitmask of QIOChannelFeatures */
+ char *name;
#ifdef _WIN32
HANDLE event; /* For use with GSource on Win32 */
#endif
@@ -159,6 +160,18 @@ void qio_channel_set_feature(QIOChannel *ioc,
QIOChannelFeature feature);
/**
+ * qio_channel_set_name:
+ * @ioc: the channel object
+ * @name: the name of the channel
+ *
+ * Sets the name of the channel, which serves as an aid
+ * to debugging. The name is used when creating GSource
+ * watches for this channel.
+ */
+void qio_channel_set_name(QIOChannel *ioc,
+ const char *name);
+
+/**
* qio_channel_readv_full:
* @ioc: the channel object
* @iov: the array of memory regions to read data into