mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2025-12-31 20:36:25 +00:00
libsysprof: increase priority of mapped ring buffer source
We want to reduce the chances we've lost anything in these, which is pretty important for memory tracing.
This commit is contained in:
@ -33,7 +33,8 @@ guint mapped_ring_buffer_create_source (MappedRingBuffer *self,
|
||||
MappedRingBufferCallback callback,
|
||||
gpointer user_data);
|
||||
G_GNUC_INTERNAL
|
||||
guint mapped_ring_buffer_create_source_full (MappedRingBuffer *self,
|
||||
guint mapped_ring_buffer_create_source_full (int priority,
|
||||
MappedRingBuffer *self,
|
||||
MappedRingBufferCallback callback,
|
||||
gpointer user_data,
|
||||
GDestroyNotify destroy);
|
||||
|
||||
@ -89,7 +89,8 @@ static GSourceFuncs mapped_ring_source_funcs = {
|
||||
};
|
||||
|
||||
guint
|
||||
mapped_ring_buffer_create_source_full (MappedRingBuffer *self,
|
||||
mapped_ring_buffer_create_source_full (int priority,
|
||||
MappedRingBuffer *self,
|
||||
MappedRingBufferCallback source_func,
|
||||
gpointer user_data,
|
||||
GDestroyNotify destroy)
|
||||
@ -103,7 +104,8 @@ mapped_ring_buffer_create_source_full (MappedRingBuffer *self,
|
||||
source = (MappedRingSource *)g_source_new (&mapped_ring_source_funcs, sizeof (MappedRingSource));
|
||||
source->buffer = mapped_ring_buffer_ref (self);
|
||||
g_source_set_callback ((GSource *)source, (GSourceFunc)source_func, user_data, destroy);
|
||||
g_source_set_name ((GSource *)source, "MappedRingSource");
|
||||
g_source_set_static_name ((GSource *)source, "MappedRingSource");
|
||||
g_source_set_priority ((GSource *)source, priority);
|
||||
ret = g_source_attach ((GSource *)source, g_main_context_default ());
|
||||
g_source_unref ((GSource *)source);
|
||||
|
||||
@ -115,5 +117,5 @@ mapped_ring_buffer_create_source (MappedRingBuffer *self,
|
||||
MappedRingBufferCallback source_func,
|
||||
gpointer user_data)
|
||||
{
|
||||
return mapped_ring_buffer_create_source_full (self, source_func, user_data, NULL);
|
||||
return mapped_ring_buffer_create_source_full (G_PRIORITY_DEFAULT, self, source_func, user_data, NULL);
|
||||
}
|
||||
|
||||
@ -241,7 +241,8 @@ sysprof_controlfd_instrument_record_fiber (gpointer user_data)
|
||||
ring_data = g_new0 (RingData, 1);
|
||||
ring_data->writer = sysprof_capture_writer_ref (temp_writer);
|
||||
ring_data->source_ids = g_array_ref (state->source_ids);
|
||||
ring_data->id = mapped_ring_buffer_create_source_full (ring_buffer,
|
||||
ring_data->id = mapped_ring_buffer_create_source_full (G_PRIORITY_HIGH,
|
||||
ring_buffer,
|
||||
sysprof_controlfd_instrument_frame_cb,
|
||||
ring_data,
|
||||
(GDestroyNotify)ring_data_free);
|
||||
|
||||
Reference in New Issue
Block a user