Re: [PATCH] Use cThread::mutex with absolute cCondVar::TimedWait()

Klaus Schmidinger <[email protected]> Wed, 15 Feb 2023 18:01:46 +0100
Newsgroups gmane.linux.vdr
Message-ID <[email protected]>
T24gMjIuMDEuMjMgMTM6NTIsIE1hcmtvIE3DpGtlbMOkIHdyb3RlOgo+IEhpLAo+IAo+IEkgd291
bGQgcHJvcG9zZSB0aGUgZm9sbG93aW5nIHBhdGNoLCBvciBzb21lIGVxdWl2YWxlbnQgaW50ZXJm
YWNlIHRoYXQgd291bGQgYWxsb3cgY1RocmVhZDo6bXV0ZXggdG8gYmUgdXNlZCB3aXRoIHNvbWUg
Y0NvbmRWYXIgaW4gZGVyaXZlZCBjbGFzc2VzOgo+IAo+IGRpZmYgLS1naXQgYS90aHJlYWQuaCBi
L3RocmVhZC5oCj4gaW5kZXggMTZjNGJkNzUuLmNkMWQ5OGFiIDEwMDY0NAo+IC0tLSBhL3RocmVh
ZC5oCj4gKysrIGIvdGhyZWFkLmgKPiBAQCAtODMsNyArODMsOSBAQCBwcml2YXRlOgo+ICDCoMKg
IGJvb2wgcnVubmluZzsKPiAgwqDCoCBwdGhyZWFkX3QgY2hpbGRUaWQ7Cj4gIMKgwqAgdFRocmVh
ZElkIGNoaWxkVGhyZWFkSWQ7Cj4gK3Byb3RlY3RlZDoKPiAgwqDCoCBjTXV0ZXggbXV0ZXg7Cj4g
K3ByaXZhdGU6Cj4gIMKgwqAgY2hhciAqZGVzY3JpcHRpb247Cj4gIMKgwqAgYm9vbCBsb3dQcmlv
cml0eTsKPiAgwqDCoCBzdGF0aWMgdFRocmVhZElkIG1haW5UaHJlYWRJZDsKCkkgZG9uJ3QgbGlr
ZSB0aGUgaWRlYSBvZiBleHBvc2luZyB0aGF0IG11dGV4LgpJZiB5b3UgcmVhbGx5IG5lZWQgc3Vj
aCBmdW5jdGlvbmFsaXR5LCBwbGVhc2Ugc3VnZ2VzdCBhIGZ1bmN0aW9uIHRoYXQgZG9lcyB0aGlz
IHdpdGhvdXQKZXhwb3NpbmcgdGhlIG11dGV4LgoKPiBCZWNhdXNlIGNUaHJlYWQ6Om11dHggaXMg
ZGVjbGFyZWQgcHJpdmF0ZSBhbmQgdGhlcmUgaXMgbm8gaGVscGVyIG1lbWJlciBmdW5jdGlvbiwg
ZGVyaXZlZCBjbGFzc2VzIHRoYXQgd2lzaCB0byB1c2UgY29uZGl0aW9uIHZhcmlhYmxlcyBoYXZl
IHRvIGluc3RhbnRpYXRlIGEgc2VwYXJhdGUgY011dGV4IGZvciB0aGF0LiBIZXJlIGlzIGFuIGV4
YW1wbGUgZnJvbSB0aGUgcnBpaGRkZXZpY2UgcGx1Z2luIHRoYXQgaWxsdXN0cmF0ZXMgbXkgcG9p
bnQ6Cj4gCj4gZGlmZiAtLWdpdCBhL29teC5jIGIvb214LmMKPiAtLS0gYS9vbXguYwo+ICsrKyBi
L29teC5jCj4gQEAgLTExOSwxNyArMTE5LDE3IEBAIGNvbnN0IGNoYXIqIGNPbXg6OmVyclN0cihp
bnQgZXJyKQo+ICDCoHZvaWQgY09teDo6QWN0aW9uKHZvaWQpCj4gIMKgewo+ICDCoMKgwqDCoCBj
VGltZU1zIHRpbWVyOwo+IC3CoMKgwqAgbV9tdXRleC5Mb2NrKCk7Cj4gK8KgwqDCoCBMb2NrKCk7
Cj4gIMKgwqDCoMKgIHdoaWxlIChSdW5uaW5nKCkpCj4gIMKgwqDCoMKgIHsKPiAgwqDCoMKgwqDC
oMKgwqDCoCB3aGlsZSAobV9wb3J0RXZlbnRzLmVtcHR5KCkpCj4gLcKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgaWYgKG1fcG9ydEV2ZW50c0FkZGVkLlRpbWVkV2FpdChtX211dGV4LCAxMCkpCj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFtX3BvcnRFdmVudHNBZGRlZC5UaW1lZFdhaXQobXV0
ZXgsIDEwKSkKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byB0aW1lb3V0
Owo+IAo+ICDCoMKgwqDCoMKgwqDCoMKgIHsKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNv
bnN0IEV2ZW50IGV2ZW50ID0gbV9wb3J0RXZlbnRzLmZyb250KCk7Cj4gIMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBtX3BvcnRFdmVudHMucG9wKCk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
bV9tdXRleC5VbmxvY2soKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBVbmxvY2soKTsKPiAK
PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN3aXRjaCAoZXZlbnQuZXZlbnQpCj4gIMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCB7Cj4gCj4gQWN0dWFsbHksIHRoZXJlIGlzIGEgYnVnIGFib3Zl
OiB0aGUgY29uZGl0aW9uIGZvciB0aGUgVGltZWRXYWl0KCkgY2FsbCB3YXMgaW52ZXJ0ZWQuCj4g
Cj4gVGhpcyBjb2RlIGlsbHVzdHJhdGVzIGFub3RoZXIgbGltaXRhdGlvbjogVGhlcmUgaXMgbm8g
d2F5IHRvIHBhc3MgYW4gYWJzb2x1dGUgdGltZSB0byBjQ29uZFZhcjo6VGltZWRXYWl0KCkuIE9u
IGVhY2ggY2FsbCwgYSByZWxhdGl2ZSB3YWtlLXVwIHRpbWUgKG1pbGxpc2Vjb25kcyBmcm9tIHRo
ZSBjdXJyZW50IHRpbWUpIHdpbGwgYmUgY29udmVydGVkIGludG8gYW4gYWJzb2x1dGUgdGltZS4g
SWYgdGhlcmUgd2FzIGEgd2F5LCB3ZSB3b3VsZCBiZSBhYmxlIHRvIHJlbW92ZSB0aGUgImNUaW1l
TXMgdGltZXIiIGFuZCBzb21lIAo+IHJlbGF0ZWQgc3lzdGVtIGNhbGxzLCBhbmQgaGF2ZSB0aGlz
IGxvb3AgYm90aCB3YWtlIHVwIGV2ZXJ5IDEwMCBtaWxsaXNlY29uZHMsIGFuZCBwcm9jZXNzIGV2
ZW50cyBhcyBzb29uIGFzIHRoZXkgYXJyaXZlLiBIZXJlIGlzIHRoZSBWRFIgcGFydCBvZiB0aGUg
cGF0Y2g6Cj4gCgoKPiBkaWZmIC0tZ2l0IGEvdGhyZWFkLmMgYi90aHJlYWQuYwo+IGluZGV4IDkz
ZWI4YzBkLi4zZGNiNDRkNCAxMDA2NDQKPiAtLS0gYS90aHJlYWQuYwo+ICsrKyBiL3RocmVhZC5j
Cj4gQEAgLTM2LDcgKzM2LDcgQEAKPiAgwqAjZGVmaW5lIGRiZ2xvY2tpbmcoYS4uLikKPiAgwqAj
ZW5kaWYKPiAKPiAtc3RhdGljIGJvb2wgR2V0QWJzVGltZShzdHJ1Y3QgdGltZXNwZWMgKkFic3Rp
bWUsIGludCBNaWxsaXNlY29uZHNGcm9tTm93KQo+ICtib29sIGNDb25kVmFyOjpHZXRBYnNUaW1l
KHN0cnVjdCB0aW1lc3BlYyAqQWJzdGltZSwgaW50IE1pbGxpc2Vjb25kc0Zyb21Ob3cpCj4gIMKg
ewo+ICDCoMKgIHN0cnVjdCB0aW1ldmFsIG5vdzsKPiAgwqDCoCBpZiAoZ2V0dGltZW9mZGF5KCZu
b3csIE5VTEwpID09IDApIHvCoMKgwqDCoMKgwqDCoMKgwqDCoCAvLyBnZXQgY3VycmVudCB0aW1l
CgpXaGF0IGlzIHRoZSByYXRpb25hbGUgYmVoaW5kIHRoaXMgY2hhbmdlLCBvdGhlciB0aGFuIGhh
dmluZyB0byBjYWxsIGl0IHdpdGggY0NvbmRWYXI6OkdldEFic1RpbWUoKT8KCj4gQEAgLTgxLDcg
KzgxLDcgQEAgYm9vbCBjQ29uZFdhaXQ6OldhaXQoaW50IFRpbWVvdXRNcykKPiAgwqDCoCBpZiAo
IXNpZ25hbGVkKSB7Cj4gIMKgwqDCoMKgwqAgaWYgKFRpbWVvdXRNcykgewo+ICDCoMKgwqDCoMKg
wqDCoMKgIHN0cnVjdCB0aW1lc3BlYyBhYnN0aW1lOwo+IC3CoMKgwqDCoMKgwqDCoCBpZiAoR2V0
QWJzVGltZSgmYWJzdGltZSwgVGltZW91dE1zKSkgewo+ICvCoMKgwqDCoMKgwqDCoCBpZiAoY0Nv
bmRWYXI6OkdldEFic1RpbWUoJmFic3RpbWUsIFRpbWVvdXRNcykpIHsKPiAgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCB3aGlsZSAoIXNpZ25hbGVkKSB7Cj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgaWYgKHB0aHJlYWRfY29uZF90aW1lZHdhaXQoJmNvbmQsICZtdXRleCwgJmFi
c3RpbWUpID09IEVUSU1FRE9VVCkKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBicmVhazsKPiBAQCAtMTI5LDIwICsxMjksMjcgQEAgdm9pZCBjQ29uZFZhcjo6V2Fp
dChjTXV0ZXggJk11dGV4KQo+ICDCoMKgwqDCoMKgIH0KPiAgwqB9Cj4gCj4gK2Jvb2wgY0NvbmRW
YXI6OlRpbWVkV2FpdChjTXV0ZXggJk11dGV4LCBjb25zdCB0aW1lc3BlYyAmYWJzdGltZSkKPiAr
ewo+ICvCoCBpbnQgZXJyID0gMDsKPiArCj4gK8KgIGlmIChpbnQgbG9ja2VkID0gTXV0ZXgubG9j
a2VkKSB7Cj4gK8KgwqDCoMKgIE11dGV4LmxvY2tlZCA9IDA7IC8vIGhhdmUgdG8gY2xlYXIgdGhl
IGxvY2tlZCBjb3VudCBoZXJlLCBhcyBwdGhyZWFkX2NvbmRfdGltZWR3YWl0Cj4gK8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIGRvZXMgYW4gaW1wbGljaXQg
dW5sb2NrIG9mIHRoZSBtdXRleC4KPiArwqDCoMKgwqAgZXJyID0gcHRocmVhZF9jb25kX3RpbWVk
d2FpdCgmY29uZCwgJk11dGV4Lm11dGV4LCAmYWJzdGltZSk7Cj4gK8KgwqDCoMKgIE11dGV4Lmxv
Y2tlZCA9IGxvY2tlZDsKPiArwqDCoMKgwqAgfQo+ICvCoCByZXR1cm4gZXJyICE9IEVUSU1FRE9V
VDsKPiArfQo+ICsKPiAgwqBib29sIGNDb25kVmFyOjpUaW1lZFdhaXQoY011dGV4ICZNdXRleCwg
aW50IFRpbWVvdXRNcykKPiAgwqB7Cj4gIMKgwqAgYm9vbCByID0gdHJ1ZTsgLy8gdHJ1ZSA9IGNv
bmRpdGlvbiBzaWduYWxlZCwgZmFsc2UgPSB0aW1lb3V0Cj4gCj4gIMKgwqAgaWYgKE11dGV4Lmxv
Y2tlZCkgewo+ICDCoMKgwqDCoMKgIHN0cnVjdCB0aW1lc3BlYyBhYnN0aW1lOwo+IC3CoMKgwqDC
oCBpZiAoR2V0QWJzVGltZSgmYWJzdGltZSwgVGltZW91dE1zKSkgewo+IC3CoMKgwqDCoMKgwqDC
oCBpbnQgbG9ja2VkID0gTXV0ZXgubG9ja2VkOwo+IC3CoMKgwqDCoMKgwqDCoCBNdXRleC5sb2Nr
ZWQgPSAwOyAvLyBoYXZlIHRvIGNsZWFyIHRoZSBsb2NrZWQgY291bnQgaGVyZSwgYXMgcHRocmVh
ZF9jb25kX3RpbWVkd2FpdAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCAvLyBkb2VzIGFuIGltcGxpY2l0IHVubG9jayBvZiB0aGUgbXV0ZXguCj4g
LcKgwqDCoMKgwqDCoMKgIGlmIChwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCZjb25kLCAmTXV0ZXgu
bXV0ZXgsICZhYnN0aW1lKSA9PSBFVElNRURPVVQpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgIHIg
PSBmYWxzZTsKPiAtwqDCoMKgwqDCoMKgwqAgTXV0ZXgubG9ja2VkID0gbG9ja2VkOwo+IC3CoMKg
wqDCoMKgwqDCoCB9Cj4gK8KgwqDCoMKgIGlmIChHZXRBYnNUaW1lKCZhYnN0aW1lLCBUaW1lb3V0
TXMpKQo+ICvCoMKgwqDCoMKgwqDCoCByID0gVGltZWRXYWl0KE11dGV4LCBhYnN0aW1lKTsKPiAg
wqDCoMKgwqDCoCB9Cj4gIMKgwqAgcmV0dXJuIHI7Cj4gIMKgfQo+IEBAIC0xNzQsNyArMTgxLDcg
QEAgYm9vbCBjUndMb2NrOjpMb2NrKGJvb2wgV3JpdGUsIGludCBUaW1lb3V0TXMpCj4gIMKgwqAg
aW50IFJlc3VsdCA9IDA7Cj4gIMKgwqAgc3RydWN0IHRpbWVzcGVjIGFic3RpbWU7Cj4gIMKgwqAg
aWYgKFRpbWVvdXRNcykgewo+IC3CoMKgwqDCoCBpZiAoIUdldEFic1RpbWUoJmFic3RpbWUsIFRp
bWVvdXRNcykpCj4gK8KgwqDCoMKgIGlmICghY0NvbmRWYXI6OkdldEFic1RpbWUoJmFic3RpbWUs
IFRpbWVvdXRNcykpCj4gIMKgwqDCoMKgwqDCoMKgwqAgVGltZW91dE1zID0gMDsKPiAgwqDCoMKg
wqDCoCB9Cj4gIMKgwqAgaWYgKFdyaXRlKSB7Cj4gZGlmZiAtLWdpdCBhL3RocmVhZC5oIGIvdGhy
ZWFkLmgKPiBpbmRleCAxNmM0YmQ3NS4uMDRiYjRjYzUgMTAwNjQ0Cj4gLS0tIGEvdGhyZWFkLmgK
PiArKysgYi90aHJlYWQuaAo+IEBAIC00OSw3ICs0OSw5IEBAIHB1YmxpYzoKPiAgwqDCoCB+Y0Nv
bmRWYXIoKTsKPiAgwqDCoCB2b2lkIFdhaXQoY011dGV4ICZNdXRleCk7Cj4gIMKgwqAgYm9vbCBU
aW1lZFdhaXQoY011dGV4ICZNdXRleCwgaW50IFRpbWVvdXRNcyk7Cj4gK8KgIGJvb2wgVGltZWRX
YWl0KGNNdXRleCAmTXV0ZXgsIGNvbnN0IHRpbWVzcGVjICZhYnN0aW1lKTsKPiAgwqDCoCB2b2lk
IEJyb2FkY2FzdCh2b2lkKTsKPiArwqAgc3RhdGljIGJvb2wgR2V0QWJzVGltZShzdHJ1Y3QgdGlt
ZXNwZWMgKkFic3RpbWUsIGludCBNaWxsaXNlY29uZHNGcm9tTm93KTsKPiAgwqDCoCB9Owo+IAo+
ICDCoGNsYXNzIGNSd0xvY2sgewoKU28gd2hlcmUgYW5kIGhvdyB3b3VsZCB5b3UgYmUgdXNpbmcg
dGhpcyBuZXcgZnVuY3Rpb24/Cgo+IEkgZGlkIG5vdCBjb21wbGV0ZSB0aGUgY2hhbmdlIHRvIHJw
aWhkZGV2aWNlIGNPbXg6OkFjdGlvbigpIHlldC4gV2UgbWF5IGJlIGZvcmNlZCB0byByZXRhaW4g
dHdvIG11dGV4ZXMgYWZ0ZXIgYWxsCgpZb3Ugd2FudCB0byBleHBvc2UgdGhlIGNUaHJlYWQ6Om11
dGV4IGluIG9yZGVyIHRvIGF2b2lkIGFuIGFkZGl0aW9uYWwgbXV0ZXggaW4gdGhlIGRlcml2ZWQg
Y2xhc3MsIGJ1dAptYXkgYmUgZm9yY2VkIHRvIHJldGFpbiB0d28gbXV0ZXhlcyBhZnRlciBhbGwg
LSB3aGF0IGFtIEkgbWlzc2luZyBoZXJlPwoKS2xhdXMKCgoKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KdmRyIG1haWxpbmcgbGlzdAp2ZHJAbGludXh0di5v
cmcKaHR0cHM6Ly93d3cubGludXh0di5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Zkcgo=