A method performed by a computer system, comprising: writing, by a device-side audio handling input/output unit, DIO, of a hardware device, audio data generated by the hardware device at a DIO position within a ring buffer; and receiving, by a system-side audio handling input/output unit, SIO,, a request from a client thread of a client application to consume past audio data from the ring buffer; characterized in that the hardware device is a dedicated microphone path that is continuously recording audio data; wherein the method further comprises: activating the client thread of the client application at a first time (Tl), the client thread of the client application being ready at a second time to consume audio data from the ring buffer in real-time, the second time being later than the first time (Tl), and the past audio data being written into the ring buffer prior to the second time; providing, by the SIO, the past audio data starting from a SIO position, which is associated with a time that is prior to a time associated with the DIO position within the ring buffer to the client thread of the client application; putting, by the SIO, said client thread of the client application to sleep until the time associated with the DIO position is ahead of the time associated with the SIO position by at least a client-side offset; and when the time associated with the DIO position is ahead of the time associated with the SIO position by at least the client-side offset: awaking, by the SIO, the client thread of the client application; and providing, by the SIO, audio data from the ring buffer to the client thread of the client application. writing, by a device-side audio handling input/output unit, DIO, of a hardware device, audio data generated by the hardware device at a DIO position within a ring buffer; and receiving, by a system-side audio handling input/output unit, SIO,, a request from a client thread of a client application to consume past audio data from the ring buffer; characterized in that the hardware device is a dedicated microphone path that is continuously recording audio data; wherein the method further comprises: activating the client thread of the client application at a first time (Tl), the client thread of the client application being ready at a second time to consume audio data from the ring buffer in real-time, the second time being later than the first time (Tl), and the past audio data being written into the ring buffer prior to the second time; providing, by the SIO, the past audio data starting from a SIO position, which is associated with a time that is prior to a time associated with the DIO position within the ring buffer to the client thread of the client application; putting, by the SIO, said client thread of the client application to sleep until the time associated with the DIO position is ahead of the time associated with the SIO position by at least a client-side offset; and when the time associated with the DIO position is ahead of the time associated with the SIO position by at least the client-side offset: awaking, by the SIO, the client thread of the client application; and providing, by the SIO, audio data from the ring buffer to the client thread of the client application. activating the client thread of the client application at a first time (Tl), the client thread of the client application being ready at a second time to consume audio data from the ring buffer in real-time, the second time being later than the first time (Tl), and the past audio data being written into the ring buffer prior to the second time; providing, by the SIO, the past audio data starting from a SIO position, which is associated with a time that is prior to a time associated with the DIO position within the ring buffer to the client thread of the client application; putting, by the SIO, said client thread of the client application to sleep until the time associated with the DIO position is ahead of the time associated with the SIO position by at least a client-side offset; and when the time associated with the DIO position is ahead of the time associated with the SIO position by at least the client-side offset: awaking, by the SIO, the client thread of the client application; and providing, by the SIO, audio data from the ring buffer to the client thread of the client application. awaking, by the SIO, the client thread of the client application; and providing, by the SIO, audio data from the ring buffer to the client thread of the client application.