--------------Boundary-00=_GQ1PO5H5QK09WF4OCIV6 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Hi, I noticed that when changing with konqy into qt-copy/doc/html, sorting the dir once takes 2.2 seconds. It gets sorted after every chunk of incoming file items. Sometimes it happens that I get 1100 items at once (i.e. 2.2 seconds sorting) and then the rest of 150 item in the second chunk (again 2 seconds sorting). So I tuned the calculation of listEntryCurrentSize a little bit so that this shouldn't happen anymore (at least less probably). I check whether all remaining items may arrive within maximum_updatetime, if this is true, listEntryCurrentSize is set big enough to take them all. If we are below min_updatetime, I calculate how much items might arrive within min_updatetime and take twice as much (200 ms is still fast enough). The patch makes e.g. listing of qt-copy/doc/html on my system noticable faster. It assumes that totalSize() is always called before the first listEntry(). Bye Alex (the patch also contains the changed signal handler) --------------Boundary-00=_GQ1PO5H5QK09WF4OCIV6 Content-Type: text/x-diff; charset="iso-8859-1"; name="slavebase.h.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="slavebase.h.diff" SW5kZXg6IHNsYXZlYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2tkZS9rZGVsaWJz L2tpby9raW8vc2xhdmViYXNlLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNzcKZGlmZiAtYiAt dSAtcCAtcjEuNzcgc2xhdmViYXNlLmgKLS0tIHNsYXZlYmFzZS5oCTIwMDIvMDQvMzAgMjM6NDI6 MDcJMS43NworKysgc2xhdmViYXNlLmgJMjAwMi8wNS8yNiAwMDozMjo1MgpAQCAtNzY2LDYgKzc2 NiwxNSBAQCBwdWJsaWM6CiAgICAgTWV0YURhdGEgbU91dGdvaW5nTWV0YURhdGE7CiAgICAgTWV0 YURhdGEgbUluY29taW5nTWV0YURhdGE7CiAKKyAgICAvKiogSWYgeW91ciBpb3NsYXZlIHdhcyBr aWxsZWQgYnkgYSBzaWduYWwsIHdhc0tpbGxlZCgpIHJldHVybnMgdHJ1ZS4KKyAgICAgQ2hlY2sg aXQgcmVndWxhcmx5IGluIGxlbmd0aHkgZnVuY3Rpb25zIChlLmcuIGluIGdldCgpOykgYW5kIHJl dHVybgorICAgICBhcyBmYXN0IGFzIHBvc3NpYmxlIGZyb20gdGhpcyBmdW5jdGlvbiBpZiB3YXNL aWxsZWQoKSByZXR1cm5zIHRydWUuCisgICAgIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB5b3VyIHNs YXZlIGRlc3RydWN0b3Igd2lsbCBiZSBjYWxsZWQgY29ycmVjdGx5LgorICAgICAqLworICAgIGJv b2wgd2FzS2lsbGVkKCkgY29uc3Q7CisgICAgLyoqIEludGVybmFsbHkgdXNlZC4KKyAgICAgKi8K KyAgICB2b2lkIHNldEtpbGxGbGFnKCk7CiBwcml2YXRlOgogICAgIGJvb2wgc3RvcmVBdXRoSW5m byggY29uc3QgUUNTdHJpbmcmLCBjb25zdCBRQ1N0cmluZyYsIGNvbnN0IEF1dGhJbmZvJiApOwog Cg== --------------Boundary-00=_GQ1PO5H5QK09WF4OCIV6 Content-Type: text/x-diff; charset="iso-8859-1"; name="slavebase.cpp.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="slavebase.cpp.diff" SW5kZXg6IHNsYXZlYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUva2RlL2tkZWxp YnMva2lvL2tpby9zbGF2ZWJhc2UuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEyMwpkaWZm IC1iIC11IC1wIC1yMS4xMjMgc2xhdmViYXNlLmNwcAotLS0gc2xhdmViYXNlLmNwcAkyMDAyLzAz LzMxIDAzOjE5OjI2CTEuMTIzCisrKyBzbGF2ZWJhc2UuY3BwCTIwMDIvMDUvMjYgMDA6MzM6MDUK QEAgLTEwNCwxMCArMTA0LDEzIEBAIHB1YmxpYzoKICAgICBib29sIHJlc3VtZToxOwogICAgIGJv b2wgbmVlZFNlbmRDYW5SZXN1bWU6MTsKICAgICBib29sIG11bHRpcGxlQXV0aENhY2hpbmc6MTsK KyAgICBib29sIG9uSG9sZDoxOworICAgIGJvb2wgd2FzS2lsbGVkOjE7CisgICAgS0lPOjpmaWxl c2l6ZV90IHRvdGFsU2l6ZTsKKyAgICBLSU86OmZpbGVzaXplX3Qgc2VudExpc3RFbnRyaWVzOwog ICAgIE1ldGFEYXRhIGNvbmZpZ0RhdGE7CiAgICAgU2xhdmVCYXNlQ29uZmlnICpjb25maWc7CiAg ICAgS1VSTCBvbkhvbGRVcmw7Ci0gICAgYm9vbCBvbkhvbGQ7CiAKICAgICBzdHJ1Y3QgdGltZXZh bCBsYXN0X3R2OwogICAgIEtJTzo6ZmlsZXNpemVfdCBwcm9jZXNzZWRfc2l6ZTsKQEAgLTExNyw2 ICsxMjAsMTYgQEAgcHVibGljOgogCiBTbGF2ZUJhc2UgKmdsb2JhbFNsYXZlPTA7CiAKK3ZvaWQg c2lnYWxhcm1faGFuZGxlcihpbnQgc2lnTnVtYmVyKQoreworICAgc2lnbmFsKHNpZ051bWJlcixT SUdfSUdOKTsKKyAgIC8vSSBkb24ndCB0aGluayB3ZSBjYW4gaGF2ZSB0aGUgc2FtZSBwcm9ibGVt IGhlcmUgYXMgaW4gdGhlIHNpZ3NlZ3YgaGFuZGxlcgorICAga2REZWJ1ZygpPDwia2lvc2xhdmUg OiBleGl0aW5nIGR1ZSBhbGFybSBzaWduYWwgIjw8ZW5kbDsKKyAgIGV4aXQoMik7Cit9OworCisK Kwogdm9pZCBnZW5lcmljc2lnX2hhbmRsZXIoaW50IHNpZ051bWJlcikKIHsKICAgIHNpZ25hbChz aWdOdW1iZXIsU0lHX0lHTik7CkBAIC0xMjQsOCArMTM3LDExIEBAIHZvaWQgZ2VuZXJpY3NpZ19o YW5kbGVyKGludCBzaWdOdW1iZXIpCiAgICBrZERlYnVnKCk8PCJraW9zbGF2ZSA6IGV4aXRpbmcg ZHVlIHRvIHNpZ25hbCAiPDxzaWdOdW1iZXI8PGVuZGw7CiAgICAvL2NhbGwgdGhlIGR0b3Igb2Yg dGhlIHNsYXZlIGFuZCBleGl0CiAgICBpZiAoZ2xvYmFsU2xhdmUhPTApCi0gICAgICBnbG9iYWxT bGF2ZS0+flNsYXZlQmFzZSgpOwotICAgZXhpdCgyKTsKKyAgICAgIGdsb2JhbFNsYXZlLT5zZXRL aWxsRmxhZygpOworCXNpZ25hbChTSUdBTFJNLCZzaWdhbGFybV9oYW5kbGVyKTsKKyAgIGFsYXJt KDUpOyAgLy9nZW5lcmF0ZSBhbiBhbGFybSBzaWduYWwgaW4gNSBzZWNvbmRzLCBpbiB0aGlzIHRp bWUgdGhlIHNsYXZlIGhhcyB0byBleGl0CisvLyAgICAgIGdsb2JhbFNsYXZlLT5+U2xhdmVCYXNl KCk7CisvLyAgIGV4aXQoMik7CiB9OwogCiAvLy8vLy8vLy8vLy8vLwpAQCAtMTg3LDYgKzIwMyw5 IEBAIFNsYXZlQmFzZTo6U2xhdmVCYXNlKCBjb25zdCBRQ1N0cmluZyAmcHIKICAgICBkLT5sYXN0 X3R2LnR2X3NlYyA9IDA7CiAgICAgZC0+bGFzdF90di50dl91c2VjID0gMDsKICAgICBkLT5wcm9j ZXNzZWRfc2l6ZSA9IDA7CisgICAgZC0+d2FzS2lsbGVkPWZhbHNlOworICAgIGQtPnRvdGFsU2l6 ZT0wOworICAgIGQtPnNlbnRMaXN0RW50cmllcz0wOwogCiAgICAgY29ubmVjdFNsYXZlKG1BcHBT b2NrZXQpOwogfQpAQCAtMjA2LDggKzIyNSwxMCBAQCB2b2lkIFNsYXZlQmFzZTo6ZGlzcGF0Y2hM b29wKCkKIAogICAgIGFzc2VydChhcHBjb25uLT5pbml0ZWQoKSk7CiAgICAgRkRfU0VUKGFwcGNv bm4tPmZkX2Zyb20oKSwgJnJmZHMpOwotCi0gICAgcmV0dmFsID0gc2VsZWN0KGFwcGNvbm4tPmZk X2Zyb20oKSsgMSwgJnJmZHMsIE5VTEwsIE5VTEwsIDApOworICAgIHN0cnVjdCB0aW1ldmFsIHR2 OworICAgIHR2LnR2X3NlYyA9IDA7CisgICAgdHYudHZfdXNlYyA9IDUwMCoxMDAwOyAvLyAwLjUg c2Vjb25kcworICAgIHJldHZhbCA9IHNlbGVjdChhcHBjb25uLT5mZF9mcm9tKCkrIDEsICZyZmRz LCBOVUxMLCBOVUxMLCAmdHYpOwogICAgIC8va2REZWJ1Zyg3MDE5KSA8PCAiZGlzcGF0Y2hMb29w KCk6IHNlbGVjdCByZXR1cm5lZCAiIDw8IHJldHZhbCA8PCBlbmRsOwogICAgIGlmIChyZXR2YWwg JiYgRkRfSVNTRVQoYXBwY29ubi0+ZmRfZnJvbSgpLCAmcmZkcykpCiAgICAgeyAvLyBkaXNwYXRj aCBhcHBsaWNhdGlvbiBtZXNzYWdlcwpAQCAtMjM1LDExICsyNTYsMTkgQEAgdm9pZCBTbGF2ZUJh c2U6OmRpc3BhdGNoTG9vcCgpCiAgICAgfQogICAgIGVsc2UKICAgICB7CisgICAgICAgaWYgKHJl dHZhbDwwKQorICAgICAgIHsKICAgICAgICBrZERlYnVnKDcwMTkpIDw8ICJkaXNwYXRjaExvb3Ao KTogc2VsZWN0IHJldHVybmVkICIgPDwgcmV0dmFsIDw8ICIgIgogICAgICAgICAgICAgICAgICAg ICAgPDwgKGVycm5vPT1FQkFERj8iRUJBREYiOmVycm5vPT1FSU5UUj8iRUlOVFIiOmVycm5vPT1F SU5WQUw/IkVJTlZBTCI6ZXJybm89PUVOT01FTT8iRU5PTUVNIjoidW5rbm93biIpCiAgICAgICAg ICAgICAgICAgICAgICA8PCAiICgiIDw8IGVycm5vIDw8ICIpIiA8PCBlbmRsOwogICAgICAgIHJl dHVybjsKICAgICB9CisgICAgICAgaWYgKHdhc0tpbGxlZCgpKQorICAgICAgIHsKKyAgICAgICAg ICBrZERlYnVnKDcwMTkpPDwiIGRpc3BhdGNoTG9vcCgpIHNsYXZlIHdhcyBraWxsZWQsIHJldHVy bmluZyI8PGVuZGw7CisgICAgICAgICAgcmV0dXJuOworICAgICAgIH07CisgICAgfQogICB9CiB9 CiAKQEAgLTMyMyw2ICszNTIsMTAgQEAgdm9pZCBTbGF2ZUJhc2U6OmVycm9yKCBpbnQgX2Vycmlk LCBjb25zdAogICAgIEtJT19EQVRBIDw8IF9lcnJpZCA8PCBfdGV4dDsKIAogICAgIG1fcENvbm5l Y3Rpb24tPnNlbmQoIE1TR19FUlJPUiwgZGF0YSApOworICAgIC8vcmVzZXQKKyAgICBsaXN0RW50 cnlDdXJyZW50U2l6ZSA9IDEwMDsKKyAgICBkLT5zZW50TGlzdEVudHJpZXM9MDsKKyAgICBkLT50 b3RhbFNpemU9MDsKIH0KIAogdm9pZCBTbGF2ZUJhc2U6OmNvbm5lY3RlZCgpCkBAIC0zMzksNiAr MzcyLDggQEAgdm9pZCBTbGF2ZUJhc2U6OmZpbmlzaGVkKCkKIAogICAgIC8vIHJlc2V0CiAgICAg bGlzdEVudHJ5Q3VycmVudFNpemUgPSAxMDA7CisgICAgZC0+c2VudExpc3RFbnRyaWVzPTA7Cisg ICAgZC0+dG90YWxTaXplPTA7CiB9CiAKIHZvaWQgU2xhdmVCYXNlOjpuZWVkU3ViVVJMRGF0YSgp CkBAIC0zNjUsNiArNDAwLDEzIEBAIHZvaWQgU2xhdmVCYXNlOjp0b3RhbFNpemUoIEtJTzo6Zmls ZXNpemUKIHsKICAgICBLSU9fREFUQSA8PCBLSU9fRklMRVNJWkVfVChfYnl0ZXMpOwogICAgIG1f cENvbm5lY3Rpb24tPnNlbmQoIElORl9UT1RBTF9TSVpFLCBkYXRhICk7CisgICAgLy90aGlzIG9u ZSBpcyB1c3VhbGx5IGNhbGxlZCBiZWZvcmUgdGhlIGZpcnN0IGl0ZW0gaXMgbGlzdGVkIGluIGxp c3REaXIoKQorICAgIHN0cnVjdCB0aW1ldmFsIHRwOworICAgIGdldHRpbWVvZmRheSgmdHAsIDAp OworICAgIGxpc3RFbnRyeV9zZWMgPSB0cC50dl9zZWM7CisgICAgbGlzdEVudHJ5X3VzZWMgPSB0 cC50dl91c2VjOworICAgIGQtPnRvdGFsU2l6ZT1fYnl0ZXM7CisgICAgZC0+c2VudExpc3RFbnRy aWVzPTA7CiB9CiAKIHZvaWQgU2xhdmVCYXNlOjpwcm9jZXNzZWRTaXplKCBLSU86OmZpbGVzaXpl X3QgX2J5dGVzICkKQEAgLTUxNywxOSArNTU5LDQwIEBAIHZvaWQgU2xhdmVCYXNlOjpsaXN0RW50 cnkoIGNvbnN0IFVEU0VudHIKIAogICAgICAgICAgICAgZ2V0dGltZW9mZGF5KCZ0cCwgMCk7CiAK KyAgICAgICAgICAgIGludCBvcHQ9MDsKKwogICAgICAgICAgICAgbG9uZyBkaWZmID0gKCh0cC50 dl9zZWMgLSBsaXN0RW50cnlfc2VjKSAqIDEwMDAwMDAgKwogICAgICAgICAgICAgICAgICAgICAg ICAgIHRwLnR2X3VzZWMgLSBsaXN0RW50cnlfdXNlYykgLyAxMDAwOworICAgICAgICAgICAgaWYg KGRpZmY9PTApIGRpZmY9MTsKIAogICAgICAgICAgICAgaWYgKGRpZmYgPiBtYXhpbXVtX3VwZGF0 ZXRpbWUpIHsKICAgICAgICAgICAgICAgICBsaXN0RW50cnlDdXJyZW50U2l6ZSA9IGxpc3RFbnRy eUN1cnJlbnRTaXplICogMyAvIDQ7CiAgICAgICAgICAgICAgICAgX3JlYWR5ID0gdHJ1ZTsKLSAg ICAgICAgICAgIH0gZWxzZSBpZiAoZGlmZiA8IG1pbmltdW1fdXBkYXRldGltZSkgewotICAgICAg ICAgICAgICAgIGxpc3RFbnRyeUN1cnJlbnRTaXplID0gbGlzdEVudHJ5Q3VycmVudFNpemUgKiA1 IC8gNDsKKyAgICAgICAgICAgICAgICBvcHQ9MDsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg ICAgICAgICAgICAgX3JlYWR5ID0gdHJ1ZTsKKy8vaWYgd2UgY2FuIHNlbmQgYWxsIGxpc3QgZW50 cmllcyBvZiB0aGlzIGRpciB3aGljaCBoYXZlIG5vdCB5ZXQgYmVlbiBzZW50CisvL3dpdGhpbiBt YXhpbXVtX3VwZGF0ZXRpbWUsIHRoZW4gbWFrZSBsaXN0RW50cnlDdXJyZW50U2l6ZSBiaWcgZW5v dWdoIGZvciBhbGwgb2YgdGhlbQorICAgICAgICAgICAgICAgaWYgKChwZW5kaW5nTGlzdEVudHJp ZXMuY291bnQoKSptYXhpbXVtX3VwZGF0ZXRpbWUvZGlmZikgPD0gKGQtPnRvdGFsU2l6ZS1kLT5z ZW50TGlzdEVudHJpZXMpKQorICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgbGlz dEVudHJ5Q3VycmVudFNpemU9ZC0+dG90YWxTaXplLWQtPnNlbnRMaXN0RW50cmllcysxOworICAg ICAgICAgICAgICAgICAgb3B0PTE7CisgICAgICAgICAgICAgICB9CisvL2lmIHdlIGFyZSBiZWxv dyBtaW5pbXVtX3VwZGF0ZXRpbWUsIGVzdGltYXRlIGhvdyBtdWNoIHdlIHdpbGwgZ2V0IHdpdGhp bgorLy9taW5pbXVtX3VwZGF0ZXRpbWUgYW5kIHRha2UgdHdpY2UgYXMgbXVjaCA6LSkKKyAgICAg ICAgICAgICAgIGVsc2UgaWYgKGRpZmYgPCBtaW5pbXVtX3VwZGF0ZXRpbWUpCisgICAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgICBsaXN0RW50cnlDdXJyZW50U2l6ZSA9IDIgKiBwZW5k aW5nTGlzdEVudHJpZXMuY291bnQoKSAqIG1pbmltdW1fdXBkYXRldGltZSAvIGRpZmY7CisgICAg ICAgICAgICAgICAgICBvcHQ9MjsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGVsc2UK KyAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIF9yZWFkeT10cnVlOworICAgICAg ICAgICAgICAgICAgb3B0PTM7CisgICAgICAgICAgICAgICB9OwogICAgICAgICB9CisgICAgICAg ICAgICBmcHJpbnRmKHN0ZGVyciwiU2xhdmVCYXNlOjpsaXN0RW50cnkoKSBkaWZmOiAlZCBjb3Vu dDogJWQgY3VyclNpemU6ICVkIHJlYWR5OiAlZCBvcHQ6ICVkXG4iLGRpZmYscGVuZGluZ0xpc3RF bnRyaWVzLmNvdW50KCksbGlzdEVudHJ5Q3VycmVudFNpemUsKF9yZWFkeT8xOjApLG9wdCk7CiAg ICAgfQorICAgIH0KIAogICAgIGlmIChfcmVhZHkpIHsgLy8gbWF5IGhhcHBlbiB3aGVuIHdlIHN0 YXJ0ZWQgd2l0aCAhcmVhZHkKICAgICBnZXR0aW1lb2ZkYXkoJnRwLCAwKTsKQEAgLTU0NCwxMiAr NjA3LDE0IEBAIHZvaWQgU2xhdmVCYXNlOjpsaXN0RW50cnkoIGNvbnN0IFVEU0VudHIKIAogdm9p ZCBTbGF2ZUJhc2U6Omxpc3RFbnRyaWVzKCBjb25zdCBVRFNFbnRyeUxpc3QmIGxpc3QgKQogewor ICAgZnByaW50ZihzdGRlcnIsIlNsYXZlQmFzZTo6bGlzdEVudHJpZXMoKSAlZCBcbiIsbGlzdC5j b3VudCgpKTsKICAgICBLSU9fREFUQSA8PCAodWludClsaXN0LmNvdW50KCk7CiAgICAgVURTRW50 cnlMaXN0Q29uc3RJdGVyYXRvciBpdCA9IGxpc3QuYmVnaW4oKTsKICAgICBVRFNFbnRyeUxpc3RD b25zdEl0ZXJhdG9yIGVuZCA9IGxpc3QuZW5kKCk7CiAgICAgZm9yICg7IGl0ICE9IGVuZDsgKytp dCkKICAgICAgIHN0cmVhbSA8PCAqaXQ7CiAgICAgbV9wQ29ubmVjdGlvbi0+c2VuZCggTVNHX0xJ U1RfRU5UUklFUywgZGF0YSk7CisgICAgZC0+c2VudExpc3RFbnRyaWVzKz0odWludClsaXN0LmNv dW50KCk7CiB9CiAKIHZvaWQgU2xhdmVCYXNlOjpzZW5kQXV0aGVudGljYXRpb25LZXkoIGNvbnN0 IFFDU3RyaW5nJiBrZXksCkBAIC0xMjY2LDYgKzEzMzEsMTcgQEAgaW50IFNsYXZlQmFzZTo6cmVh ZFRpbWVvdXQoKQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgcmV0dXJuIERFRkFVTFRfUkVB RF9USU1FT1VUOwogfQorCitib29sIFNsYXZlQmFzZTo6d2FzS2lsbGVkKCkgY29uc3QKK3sKKyAg IHJldHVybiBkLT53YXNLaWxsZWQ7Cit9OworCit2b2lkIFNsYXZlQmFzZTo6c2V0S2lsbEZsYWco KQoreworICAgZC0+d2FzS2lsbGVkPXRydWU7Cit9OworCiAKIHZvaWQgU2xhdmVCYXNlOjp2aXJ0 dWFsX2hvb2soIGludCwgdm9pZCogKQogeyAvKkJBU0U6OnZpcnR1YWxfaG9vayggaWQsIGRhdGEg KTsqLyB9Cg== --------------Boundary-00=_GQ1PO5H5QK09WF4OCIV6--