[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cygwin-patches
Subject:    [PATCH v2 13/14] Cygwin: FIFO: improve raw_write
From:       Ken Brown <kbrown () cornell ! edu>
Date:       2019-04-15 15:43:57
Message-ID: 20190415154346.54238-1-kbrown () cornell ! edu
[Download RAW message or body]

RG9uJ3Qgc2V0IHRoZSB3cml0ZSBlbmQgb2YgdGhlIHBpcGUgdG8gbm9uLWJs
b2NraW5nIG1vZGUgaWYgdGhlIEZJRk8NCmlzIG9wZW5lZCBpbiBibG9ja2lu
ZyBtb2RlLg0KDQpJbiBmaGFuZGxlcl9maWZvOjpyYXdfd3JpdGUgaW4gYmxv
Y2tpbmcgbW9kZSwgd2FpdCBmb3IgdGhlIHdyaXRlIHRvDQpjb21wbGV0ZSBy
YXRoZXIgdGhhbiByZXR1cm5pbmcgLTEgd2l0aCBFQUdBSU4uDQoNCklmIHRo
ZSBhbW91bnQgdG8gd3JpdGUgaXMgbGFyZ2UsIHdyaXRlIGluIHNtYWxsZXIg
Y2h1bmtzIChvZiBzaXplDQpkZXRlcm1pbmVkIGJ5IGEgbmV3IGRhdGEgbWVt
YmVyIG1heF9hdG9taWNfd3JpdGUpLCBhcyBpbg0KZmhhbmRsZXJfYmFzZV9v
dmVybGFwcGVkLg0KDQpGb3IgY29udmVuaWVuY2UsIGFkZCB0d28gbmV3IE5U
U1RBVFVTIGNvZGVzLCBTVEFUVVNfVEhSRUFEX1NJR05BTEVEDQphbmQgU1RB
VFVTX1RIUkVBRF9DQU5DRUxFRCwgdG8gbnRkbGwuaC4NCi0tLQ0KIHdpbnN1
cC9jeWd3aW4vZmhhbmRsZXIuaCAgICAgICB8ICAxICsNCiB3aW5zdXAvY3ln
d2luL2ZoYW5kbGVyX2ZpZm8uY2MgfCA5NSArKysrKysrKysrKysrKysrKysr
KysrKysrKystLS0tLS0tDQogd2luc3VwL2N5Z3dpbi9udGRsbC5oICAgICAg
ICAgIHwgIDQgKy0NCiAzIGZpbGVzIGNoYW5nZWQsIDgwIGluc2VydGlvbnMo
KyksIDIwIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5
Z3dpbi9maGFuZGxlci5oIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlci5oDQpp
bmRleCBhZWEwMmMyYjMuLmZkMjA1YTZkYiAxMDA2NDQNCi0tLSBhL3dpbnN1
cC9jeWd3aW4vZmhhbmRsZXIuaA0KKysrIGIvd2luc3VwL2N5Z3dpbi9maGFu
ZGxlci5oDQpAQCAtMTI3Myw2ICsxMjczLDcgQEAgY2xhc3MgZmhhbmRsZXJf
ZmlmbzogcHVibGljIGZoYW5kbGVyX2Jhc2UNCiAgIGludCBuaGFuZGxlcnMs
IG5jb25uZWN0ZWQ7DQogICBhZl91bml4X3NwaW5sb2NrX3QgX2ZpZm9fY2xp
ZW50X2xvY2s7DQogICBib29sIHJlYWRlciwgd3JpdGVyLCBkdXBsZXhlcjsN
CisgIHNpemVfdCBtYXhfYXRvbWljX3dyaXRlOw0KICAgYm9vbCBfX3JlZzIg
d2FpdCAoSEFORExFKTsNCiAgIE5UU1RBVFVTIG5wZnNfaGFuZGxlIChIQU5E
TEUgJik7DQogICBIQU5ETEUgY3JlYXRlX3BpcGVfaW5zdGFuY2UgKGJvb2wp
Ow0KZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfZmlmby5j
YyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfZmlmby5jYw0KaW5kZXggZmU0
YzY3YmRmLi5kMmY4Yjk5YmMgMTAwNjQ0DQotLS0gYS93aW5zdXAvY3lnd2lu
L2ZoYW5kbGVyX2ZpZm8uY2MNCisrKyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRs
ZXJfZmlmby5jYw0KQEAgLTM5LDcgKzM5LDggQEAgU1RBVFVTX1BJUEVfRU1Q
VFkgc2ltcGx5IG1lYW5zIHRoZXJlJ3Mgbm8gZGF0YSB0byBiZSByZWFkLiAq
Lw0KIGZoYW5kbGVyX2ZpZm86OmZoYW5kbGVyX2ZpZm8gKCk6DQogICBmaGFu
ZGxlcl9iYXNlICgpLCByZWFkX3JlYWR5IChOVUxMKSwgd3JpdGVfcmVhZHkg
KE5VTEwpLA0KICAgbGlzdGVuX2NsaWVudF90aHIgKE5VTEwpLCBsY3RfdGVy
bWluYXRpb25fZXZ0IChOVUxMKSwgbmhhbmRsZXJzICgwKSwNCi0gIG5jb25u
ZWN0ZWQgKDApLCByZWFkZXIgKGZhbHNlKSwgd3JpdGVyIChmYWxzZSksIGR1
cGxleGVyIChmYWxzZSkNCisgIG5jb25uZWN0ZWQgKDApLCByZWFkZXIgKGZh
bHNlKSwgd3JpdGVyIChmYWxzZSksIGR1cGxleGVyIChmYWxzZSksDQorICBt
YXhfYXRvbWljX3dyaXRlIChERUZBVUxUX1BJUEVCVUZTSVpFKQ0KIHsNCiAg
IHBpcGVfbmFtZV9idWZbMF0gPSBMJ1wwJzsNCiAgIG5lZWRfZm9ya19maXh1
cCAodHJ1ZSk7DQpAQCAtNTU5LDcgKzU2MCw3IEBAIGZoYW5kbGVyX2ZpZm86
Om9wZW4gKGludCBmbGFncywgbW9kZV90KQ0KIAkgIE5UU1RBVFVTIHN0YXR1
cyA9IG9wZW5fcGlwZSAoKTsNCiAJICBpZiAoTlRfU1VDQ0VTUyAoc3RhdHVz
KSkNCiAJICAgIHsNCi0JICAgICAgc2V0X3BpcGVfbm9uX2Jsb2NraW5nIChn
ZXRfaGFuZGxlICgpLCB0cnVlKTsNCisJICAgICAgc2V0X3BpcGVfbm9uX2Js
b2NraW5nIChnZXRfaGFuZGxlICgpLCBmbGFncyAmIE9fTk9OQkxPQ0spOw0K
IAkgICAgICBpZiAoIWFybSAod3JpdGVfcmVhZHkpKQ0KIAkJcmVzID0gZXJy
b3Jfc2V0X2Vycm5vOw0KIAkgICAgICBlbHNlDQpAQCAtNjYxLDI4ICs2NjIs
ODQgQEAgc3NpemVfdCBfX3JlZzMNCiBmaGFuZGxlcl9maWZvOjpyYXdfd3Jp
dGUgKGNvbnN0IHZvaWQgKnB0ciwgc2l6ZV90IGxlbikNCiB7DQogICBzc2l6
ZV90IHJldCA9IC0xOw0KLSAgTlRTVEFUVVMgc3RhdHVzOw0KKyAgc2l6ZV90
IG5ieXRlcyA9IDAsIGNodW5rOw0KKyAgTlRTVEFUVVMgc3RhdHVzID0gU1RB
VFVTX1NVQ0NFU1M7DQogICBJT19TVEFUVVNfQkxPQ0sgaW87DQorICBIQU5E
TEUgZXZ0ID0gTlVMTDsNCiANCi0gIHN0YXR1cyA9IE50V3JpdGVGaWxlIChn
ZXRfaGFuZGxlICgpLCBOVUxMLCBOVUxMLCBOVUxMLCAmaW8sDQotCQkJKFBW
T0lEKSBwdHIsIGxlbiwgTlVMTCwgTlVMTCk7DQotICBpZiAoTlRfU1VDQ0VT
UyAoc3RhdHVzKSkNCisgIGlmIChsZW4gPD0gbWF4X2F0b21pY193cml0ZSkN
CisgICAgY2h1bmsgPSBsZW47DQorICBlbHNlIGlmIChpc19ub25ibG9ja2lu
ZyAoKSkNCisgICAgY2h1bmsgPSBsZW4gPSBtYXhfYXRvbWljX3dyaXRlOw0K
KyAgZWxzZQ0KKyAgICBjaHVuayA9IG1heF9hdG9taWNfd3JpdGU7DQorDQor
ICAvKiBDcmVhdGUgYSB3YWl0IGV2ZW50IGlmIHRoZSBGSUZPIGlzIGluIGJs
b2NraW5nIG1vZGUuICovDQorICBpZiAoIWlzX25vbmJsb2NraW5nICgpICYm
ICEoZXZ0ID0gQ3JlYXRlRXZlbnQgKE5VTEwsIGZhbHNlLCBmYWxzZSwgTlVM
TCkpKQ0KKyAgICByZXR1cm4gLTE7DQorDQorICAvKiBXcml0ZSBpbiBjaHVu
a3MsIGFjY3VtdWxhdGluZyBhIHRvdGFsLiAgSWYgdGhlcmUncyBhbiBlcnJv
ciwganVzdA0KKyAgICAgcmV0dXJuIHRoZSBhY2N1bXVsYXRlZCB0b3RhbCB1
bmxlc3MgdGhlIGZpcnN0IHdyaXRlIGZhaWxzLCBpbg0KKyAgICAgd2hpY2gg
Y2FzZSByZXR1cm4gLTEuICovDQorICB3aGlsZSAobmJ5dGVzIDwgbGVuKQ0K
ICAgICB7DQotICAgICAgLyogTnRXcml0ZUZpbGUgcmV0dXJucyBzdWNjZXNz
IHdpdGggIyBvZiBieXRlcyB3cml0dGVuID09IDAgaW4NCi0JIGNhc2Ugd3Jp
dGluZyBvbiBhIG5vbi1ibG9ja2luZyBwaXBlIGZhaWxzIGlmIHRoZSBwaXBl
IGJ1ZmZlcg0KLQkgaXMgZnVsbC4gKi8NCi0gICAgICBpZiAoaW8uSW5mb3Jt
YXRpb24gPT0gMCkNCi0Jc2V0X2Vycm5vIChFQUdBSU4pOw0KKyAgICAgIFVM
T05HX1BUUiBuYnl0ZXNfbm93ID0gMDsNCisgICAgICBzaXplX3QgbGVmdCA9
IGxlbiAtIG5ieXRlczsNCisgICAgICBzaXplX3QgbGVuMTsNCisgICAgICBp
ZiAobGVmdCA+IGNodW5rKQ0KKwlsZW4xID0gY2h1bms7DQogICAgICAgZWxz
ZQ0KLQlyZXQgPSBpby5JbmZvcm1hdGlvbjsNCi0gICAgfQ0KLSAgZWxzZSBp
ZiAoU1RBVFVTX1BJUEVfSVNfQ0xPU0VEIChzdGF0dXMpKQ0KLSAgICB7DQot
ICAgICAgc2V0X2Vycm5vIChFUElQRSk7DQotICAgICAgcmFpc2UgKFNJR1BJ
UEUpOw0KKwlsZW4xID0gbGVmdDsNCisgICAgICBuYnl0ZXNfbm93ID0gMDsN
CisgICAgICBzdGF0dXMgPSBOdFdyaXRlRmlsZSAoZ2V0X2hhbmRsZSAoKSwg
ZXZ0LCBOVUxMLCBOVUxMLCAmaW8sDQorCQkJICAgIChQVk9JRCkgcHRyLCBs
ZW4xLCBOVUxMLCBOVUxMKTsNCisgICAgICBpZiAoZXZ0ICYmIHN0YXR1cyA9
PSBTVEFUVVNfUEVORElORykNCisJew0KKwkgIERXT1JEIHdhaXRyZXQgPSBj
eWd3YWl0IChldnQsIGN3X2luZmluaXRlLCBjd19jYW5jZWwgfCBjd19zaWdf
ZWludHIpOw0KKwkgIHN3aXRjaCAod2FpdHJldCkNCisJICAgIHsNCisJICAg
IGNhc2UgV0FJVF9PQkpFQ1RfMDoNCisJICAgICAgc3RhdHVzID0gaW8uU3Rh
dHVzOw0KKwkgICAgICBicmVhazsNCisJICAgIGNhc2UgV0FJVF9TSUdOQUxF
RDoNCisJICAgICAgc3RhdHVzID0gU1RBVFVTX1RIUkVBRF9TSUdOQUxFRDsN
CisJICAgICAgYnJlYWs7DQorCSAgICBjYXNlIFdBSVRfQ0FOQ0VMRUQ6DQor
CSAgICAgIHN0YXR1cyA9IFNUQVRVU19USFJFQURfQ0FOQ0VMRUQ7DQorCSAg
ICAgIGJyZWFrOw0KKwkgICAgZGVmYXVsdDoNCisJICAgICAgYnJlYWs7DQor
CSAgICB9DQorCX0NCisgICAgICBpZiAoTlRfU1VDQ0VTUyAoc3RhdHVzKSkN
CisJew0KKwkgIG5ieXRlc19ub3cgPSBpby5JbmZvcm1hdGlvbjsNCisJICAv
KiBOdFdyaXRlRmlsZSByZXR1cm5zIHN1Y2Nlc3Mgd2l0aCAjIG9mIGJ5dGVz
IHdyaXR0ZW4gPT0gMA0KKwkgICAgIGlmIHdyaXRpbmcgb24gYSBub24tYmxv
Y2tpbmcgcGlwZSBmYWlscyBiZWNhdXNlIHRoZSBwaXBlDQorCSAgICAgYnVm
ZmVyIGRvZXNuJ3QgaGF2ZSBzdWZmaWNpZW50IHNwYWNlLiAqLw0KKwkgIGlm
IChuYnl0ZXNfbm93ID09IDApDQorCSAgICBzZXRfZXJybm8gKEVBR0FJTik7
DQorCSAgcHRyID0gKChjaGFyICopIHB0cikgKyBjaHVuazsNCisJICBuYnl0
ZXMgKz0gbmJ5dGVzX25vdzsNCisJfQ0KKyAgICAgIGVsc2UgaWYgKFNUQVRV
U19QSVBFX0lTX0NMT1NFRCAoc3RhdHVzKSkNCisJew0KKwkgIHNldF9lcnJu
byAoRVBJUEUpOw0KKwkgIHJhaXNlIChTSUdQSVBFKTsNCisJfQ0KKyAgICAg
IGVsc2UNCisJX19zZXRlcnJub19mcm9tX250X3N0YXR1cyAoc3RhdHVzKTsN
CisgICAgICBpZiAobmJ5dGVzX25vdyA9PSAwKQ0KKwlsZW4gPSAwOwkJLyog
VGVybWluYXRlIGxvb3AuICovDQorICAgICAgaWYgKG5ieXRlcyA+IDApDQor
CXJldCA9IG5ieXRlczsNCiAgICAgfQ0KLSAgZWxzZQ0KLSAgICBfX3NldGVy
cm5vX2Zyb21fbnRfc3RhdHVzIChzdGF0dXMpOw0KKyAgaWYgKGV2dCkNCisg
ICAgQ2xvc2VIYW5kbGUgKGV2dCk7DQorICBpZiAoc3RhdHVzID09IFNUQVRV
U19USFJFQURfU0lHTkFMRUQgJiYgIV9teV90bHMuY2FsbF9zaWduYWxfaGFu
ZGxlciAoKSkNCisgICAgc2V0X2Vycm5vIChFSU5UUik7DQorICBlbHNlIGlm
IChzdGF0dXMgPT0gU1RBVFVTX1RIUkVBRF9DQU5DRUxFRCkNCisgICAgcHRo
cmVhZDo6c3RhdGljX2NhbmNlbF9zZWxmICgpOw0KICAgcmV0dXJuIHJldDsN
CiB9DQogDQpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9udGRsbC5oIGIv
d2luc3VwL2N5Z3dpbi9udGRsbC5oDQppbmRleCBiNDFiOTliNGIuLmUxOWNj
OGFiNSAxMDA2NDQNCi0tLSBhL3dpbnN1cC9jeWd3aW4vbnRkbGwuaA0KKysr
IGIvd2luc3VwL2N5Z3dpbi9udGRsbC5oDQpAQCAtMTUsNyArMTUsOSBAQA0K
IGV4dGVybiBHVUlEIF9fY3lnd2luX3NvY2tldF9ndWlkOw0KICNkZWZpbmUg
Q1lHV0lOX1NPQ0tFVF9HVUlEICgmX19jeWd3aW5fc29ja2V0X2d1aWQpDQog
DQotLyogY3VzdG9tIHN0YXR1cyBjb2RlOiAqLw0KKy8qIEN1c3RvbSBDeWd3
aW4tb25seSBzdGF0dXMgY29kZXMuICovDQorI2RlZmluZSBTVEFUVVNfVEhS
RUFEX1NJR05BTEVECSgoTlRTVEFUVVMpMHhlMDAwMDAwMSkNCisjZGVmaW5l
IFNUQVRVU19USFJFQURfQ0FOQ0VMRUQJKChOVFNUQVRVUykweGUwMDAwMDAy
KQ0KICNkZWZpbmUgU1RBVFVTX0lMTEVHQUxfRExMX1BTRVVET19SRUxPQ0FU
SU9OICgoTlRTVEFUVVMpIDB4ZTAwMDAyNjkpDQogDQogLyogU2ltcGxpZnkg
Y2hlY2tpbmcgZm9yIGEgdHJhbnNhY3Rpb25hbCBlcnJvciBjb2RlLiAqLw0K
LS0gDQoyLjE3LjANCg0K
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic