From c2ca31a7fdd1106f55b69e7e5ee50c97e89f47cf Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Tue, 7 Jan 2025 23:56:45 +0800
Subject: [PATCH 01/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 28 ++++++++--------------------
src/test/java/a.java | 29 +++++++++++++++++++++++++++++
2 files changed, 37 insertions(+), 20 deletions(-)
create mode 100644 src/test/java/a.java
diff --git a/pom.xml b/pom.xml
index 96b1c00..3f27055 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,25 +6,13 @@
fybug.nulll
PDConcurrent
- 0.0.2
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 3.0.0
-
- -Xdoclint:none
-
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
+ 0.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.11.2
+
+
\ No newline at end of file
diff --git a/src/test/java/a.java b/src/test/java/a.java
new file mode 100644
index 0000000..d82921a
--- /dev/null
+++ b/src/test/java/a.java
@@ -0,0 +1,29 @@
+public
+class a {
+ public static
+ void main(String[] args) {
+ try {
+ System.out.println(a());
+ } catch ( Exception e ) {
+ System.out.println("11111");
+ }
+ }
+
+ private static
+ String a() throws Exception {
+ String a;
+ try {
+ a = "2";
+ b();
+ } finally {
+ a = "3";
+ System.out.println("11111");
+ }
+ return a;
+ }
+
+ private static
+ void b() throws Exception {
+ throw new Exception();
+ }
+}
--
Gitee
From 9e6b4c85ce2ff6f273714201c7b8c4dc4e1907d5 Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 00:01:32 +0800
Subject: [PATCH 02/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 42 +++++++++++++++++++++++++++---------------
1 file changed, 27 insertions(+), 15 deletions(-)
diff --git a/pom.xml b/pom.xml
index 3f27055..83f31ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,18 +1,30 @@
-
- 4.0.0
+
+ 4.0.0
- fybug.nulll
- PDConcurrent
- 0.1.0
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 3.11.2
-
-
-
+ fybug.nulll
+ PDConcurrent
+ 0.1.0
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.11.2
+
+ -Xdoclint:none
+ false
+
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+
\ No newline at end of file
--
Gitee
From 2df3dccdea0225a7c701a3d5618e307ffe0ede88 Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 00:05:47 +0800
Subject: [PATCH 03/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/pom.xml b/pom.xml
index 83f31ea..8633dcd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,16 +12,17 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
org.apache.maven.plugins
maven-javadoc-plugin
3.11.2
-
- -Xdoclint:none
- false
-
attach-javadocs
jar
+
+ -Xdoclint:none
+ -Xdoclint:none
+ false
+
--
Gitee
From aa5ae808ff55b7d557cc1d29382ec53d1a340c92 Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 00:06:28 +0800
Subject: [PATCH 04/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/pom.xml b/pom.xml
index 8633dcd..cedd5a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,17 +12,17 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
org.apache.maven.plugins
maven-javadoc-plugin
3.11.2
+
+ -Xdoclint:none
+ -Xdoclint:none
+ false
+
attach-javadocs
jar
-
- -Xdoclint:none
- -Xdoclint:none
- false
-
--
Gitee
From abae583ccfec11dbe9629c5402f8f735c559999a Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 00:07:06 +0800
Subject: [PATCH 05/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 --
1 file changed, 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index cedd5a3..e5517f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,9 +13,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
maven-javadoc-plugin
3.11.2
- -Xdoclint:none
-Xdoclint:none
- false
--
Gitee
From fe51ecc5b7598b16dd428b2b4271e8f5c6b664ad Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 00:11:30 +0800
Subject: [PATCH 06/18] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/fybug/nulll/pdconcurrent/SyLock.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/main/java/fybug/nulll/pdconcurrent/SyLock.java b/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
index 1d7929a..2fdfc92 100644
--- a/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
+++ b/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
@@ -66,6 +66,7 @@ interface SyLock {
* @see #lock(LockType, trySupplier, Function, Function)
* @since 0.1.0
*/
+ @SuppressWarnings("unused")
default
void lock(@NotNull LockType lockType, @NotNull tryRunnable run, @Nullable Consumer catchby,
@Nullable Runnable finaby)
@@ -76,7 +77,7 @@ interface SyLock {
}, catchby == null ? null : e -> {
catchby.accept(e);
return null;
- }, finaby == null ? null : _ -> {
+ }, finaby == null ? null : r -> {
finaby.run();
return null;
});
@@ -164,12 +165,13 @@ interface SyLock {
* @see #trylock(LockType, trySupplier, Function)
* @since 0.1.0
*/
+ @SuppressWarnings("unused")
default
void trylock(@NotNull LockType lockType, @NotNull tryRunnable run, @Nullable Runnable finaby) throws Exception {
trylock(lockType, () -> {
run.run();
return null;
- }, finaby == null ? null : _ -> {
+ }, finaby == null ? null : r -> {
finaby.run();
return null;
});
@@ -338,6 +340,7 @@ interface SyLock {
* @see #lock(LockType, trySupplier, Function, Function)
* @since 0.1.0
*/
+ @SuppressWarnings("unused")
default
void read(@NotNull tryRunnable run, @Nullable Consumer catchby, @Nullable Runnable finaby) {
lock(LockType.READ, () -> {
@@ -346,7 +349,7 @@ interface SyLock {
}, catchby == null ? null : e -> {
catchby.accept(e);
return null;
- }, finaby == null ? null : _ -> {
+ }, finaby == null ? null : r -> {
finaby.run();
return null;
});
--
Gitee
From b9394042a6e3d3203e462831b78515ea36b485d1 Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 00:12:48 +0800
Subject: [PATCH 07/18] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
jar/PDConcurrent_bin.jar | Bin 15502 -> 15518 bytes
jar/PDConcurrent_sources.jar | Bin 11394 -> 11443 bytes
.../java/fybug/nulll/pdconcurrent/SyLock.java | 3 ++-
3 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/jar/PDConcurrent_bin.jar b/jar/PDConcurrent_bin.jar
index 27dd86ee8081117386b9cd6d9a9f3c06e787a8ca..8b3d7cb68bd6ec0311e8f2039ccc9cc2c64517ee 100644
GIT binary patch
delta 3022
zcmZA3c{CJU9|!Qk7{-IKMU#+*%Dzom8ybv#?6M|e8f%!4tx1-$gp8f0q7+#&hQ>pA
zWXst1UB)hoGIr&ydEWE>@!s=0=kq(?d+)jT&tFOyF^tQ?gas%70I;(IGMFwr<~qmn
zo2pAHOn)T!GQk+8Gf6T0z;ub>E|c0HtCgAGGBbijpa%Ev!10B*y@3=E0C>(xXyiIa
z0BdkpyRoVO8HcmMr~YloTqssX@{>>h-$Y;NZ&t?r`{$TttU&<47KETACsr*h;ss)y
z%z-6=x&Ax=FV@@`LMLI#TwqMt0+gN_>5vnBjE|HJGxc}{sUQB>}L6M(W5mW(E^Yfb`2*mY2p-&@YJdXc8#pCdN_+Z5
zzO9I@nnCo)x3xr5Id}E>9pO(*OY=lm&3$+;s}JOkz+b9X)Ls&>{b~$>wBPV1T?EEk
zLHVdBBRPUo6v=U#wNjcHhK{MN`?0S@O|Xx5VzZ1P{TZNF{ll0Tz~xQcKY(Ut{tFdY
z7T)~exFt4=Xeqv8DtjS5-7VzWITx5n!pfN#Rr$MU!OhfDw9;6qoH)*zU9XsM
zzpu`F-#A{znU~!%rG;WP
z4JnCk=$YY%Jgz;dn6B*p`){N=C*2)QT~UWpQ+;x7ZqKK_*gP8lOVRb?Mb?WEoZYQC
zV*l`wjj@EPj7p)9dY6tu568b|!x4v|c#CgD@O9P+$+Cls8F_dH^v
zui=XDL#`_>S>Rwox=p-|iy3Bi*zr!{um}xMc%-zRFQJWhJW+GKE=0Czn(R5rA0_am
zL`2DKI!*M8Eg?VIm-8{Jaf6dl8^t#ye7jt!&@TJ)g(6Y@_aus~;HhccGvrBI`pU=*
zZ*%lM*fM^%9m^+$#+_}qc+zptRLMbB7PwyE+sR&8XmYhMW-Zf=2}a`Pyw9NhQn%yQ`;!HI|1LcpnZgc_*Bd*~e1c#>!=3uv%Q~7UbW?FW388sGv
zgDZ@2Zqt}6&8(BOYzSe2REk0-KQVB=co`+Grdu*x&_9nsrK-aOuEvKSW*jI9Zp$UP
zWIkNK>a!$Ra@t_=TInqZJt67pUg!83sLAQ4P28clSCaPWpFf=jkwzT;dHeTf{j?Ij
z$Hxkv_DZvKS=I#dL<*Bii_Th4*}sh^g*vNNT)*y||59h8e3s(6?@78F=s#LGRS`F@
zgS?g|>H0+Sokxd9Nu$hTG-`NQ>8=y!$*U7@C@^fziGF?-Uwx?_H`*dL?&3)adhG(V;E@t$qj-H$hLmqiJ5`+*tkLqaK)i&J5HsR0vv?ghKvW
zjc^XvZ_^z!AAnHkx=;v5*C>S!gF@K5RVno1PY%@pJ2
zg_ZO)%dyUKiA*@(ua*EWH`{P0Je2y9th#w+Q`=2p{#fV%Um5LKCZWdOpz+F`($!Zi
zuQ79MYpd4tto$Fxc0rS&Ji@eAvmxK;)L+cqkGAqqUcl~3qMAmct9e`-N2zl
zm`sva#*+8m`YC!ZJ!)hB5aGQ?e0>1i2J91+XcL1HS?s-89AYi8=a)}J(L|d|e4$cWT7mfYwPnTSaRL0)@uWB
zf%WoaB3pa!mMKp+x_Z=CobEJrB&do<=k0gHJ5%~&`TRkW1-wttgDuY9Ihqjc{U?+=-7aT}u@l
zGP
zqDCxRq13jz+1o_YE5BjG+9Qc&0fTYQyE{^jWu_?>x$qyjaxb$_Q+r!KM4qhc+mNpM
zhQ!I%BQZzHkglUQ8zFRk7g5)S;OMBT$$lZN#rz)!bCnB8c+>j|)Dpy$r>H#+$Y-&m
zm8Yux;FFizG)3%JTxyOVf>4wdjW>%)s1_3IZgtR6OCkmSa^YF_kCYXo!9POR!eHqi=>|Fozw6p_WW4n*b{n<1B{}aegWSI7
zLsoo#QQ(T^%BgN$tfYP)cb$H-Cb?)v?taLapT&3h^C$9rL$C_Ji2Hp+S@%iHQEUYJ
z*NU^)c4w9MxqTW*ikH7>MB!Kavffr19uNb}f<>UCmJg*frwm#O48B8YE5=882k1E*
zomQ?e*Li2kH|i0hZH0en#fXERGXwRZ=Z~zsD<9diTVwTU>lFO4TV7Y`SXAj$q+N@`
zW1b(SBR0T9&c=4J?>C2zge**$m<3q=Hzqp*elKPKfKaC@%NT!GRJ9pOt0^(Orl!g;
zM@^66XEhYV3+gru@#=;Qsp<|4&uRSY{r@`iUo|u>8T%=k77S^c7XLQ|BeaY`B-KCv
F`42uUhsFQ^
delta 2998
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
diff --git a/jar/PDConcurrent_sources.jar b/jar/PDConcurrent_sources.jar
index ea47ab642fe7fe7c73d815ec53d8dfee75682fae..8370a0a1af54af0e9e2b6d19455b2a401e445993 100644
GIT binary patch
delta 2291
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
NGb~94947z(007Q^J3RmZ
delta 2241
zcmV;y2tN0-S%O&&P)h>@6aWAS2mlDVCy@;%0|>b%u{MPP0|K-sv%Uez91#knCt7Yb
zmjf&a0009%001PDKmr_pQ+Z5pV{0yIVRm8d8{1ABNA%f9`G=MA0v4FGkA+aGB$X;f
zY2`%Xv0BU$9GtbaUXvnZ$=nPi7}L}V2_!%i0!gaaL`jJOQ$D6UYx}9c&@(f;vo;dP0(aB#3g)r8e*VfM1fi
zd;A#h3dvrdYd9o&WUpUzUGs~<(0xIw2=t@&06+|^95t8Vy6N|f-Wd-FJ=KAMgiDsj
z-62ur2Yq#{xE%@veBNTdM|nx+UA!pzWuEYT3ziq7)q%!%pLd7?0q&qI@m^65x^DSp
zyoSix?Q~vhd^iFIND-h#w;%
zB-Hq0Om2SH!^@r#fExCSyw8W1DCrOC!cOkhV(*~TON4euQpi!2RB=AFK
zN*b!8WB8g&9Rey~oUM2ud1V1Fu>zy$a|(>&@6{Iz=*3%xgifL4dUk1-(|C6eVD5qT
zLJUJM9-#SuKmUnLq1ip<=s5*d(pyUUy|Vu(zw%jK*`zQQF+c}SCt-<*O!W%lDCq+f
zPpJ>r(A)vaOrdm|O%Wzjm_vO-)ulHm{u*n=08fny(<>0AGU>EM;epe6Q_~kipIiEZ
z;!mkIjOK(5Be|~p{fMC>DEs-4JmQzABhisDK?;I@#dB9&-?*-5Kmjke3FH
z-vg@yW+?91AmA5oM+ujmoDU#?$cJ_`haB%bZQ
z)D{R0`n(=+NKqD~VIDwlk7HT6iA!w`;&TqRA)sDrW$NM_=7HEh1?Ua*(FfRaqnns*
zn6AWsrn@>rRf$D9UdBjQ_HuLYQFa4J5B(078Z)&
zh%|%a90#rnyppfLCt6-&@F1WTxQ_ln3o+e)HVsJdW?&o|lEU7UMzav3p2Y$oWe`O&
zMOb^?eN=?p_9PPl?`kY*5LjCx335mhIf}9%aC8$Mf`>!fQ|kH)*m%m6
z?om{fu!acDKWDsU6CaCVl=LA=WtdpSlbCoUL&K)}EQOZ0u^T2f=Po6Vovtm0hnuc?K8M#_T6zl62}}8CsEQ5DX{wCb@o+~
zS{7xL25Mj{A9)P)bCFp}khlP$e2{>>${#+kPw??#TKO2`*XybC7`Iz!v2u
zp3~m1C2+QkIaDXd<_xs)Qcx70)Jg@$L+_2>JVF3Jb#efu$=(U{$fwi_H-V&k(m`s7
zuK}&rfL1Wuvy5g&{xvhzOH;$BUNakpNZ@1DF!w$E?>kN?V9{V)ya#jHE|kZn>D+?s*8(yMQjse%9;WWx
z-BsVG1%trk9P|!a!UC7ynt>XBl4b*A_-|NgVq5+<$x>N_@;RqjZhHDG)xk}0+J=~X
zjQBB@nf}|+!-da@;n|xosz&bf5tBQ((+5(cHP{ut(C*7z>PgdWsbmeaReKF%w!O?M
zZO2=sSvx_W6)D+gSp+q-BZY|A=s*lQpaAE#K_h$B^p32U(N((2Bsyt-uV8~=UgNva
z3OA~;0*tozRz;l>Cyz+}2SJWiojqT}PNQ2Y8@r(z)2wbrRWfZI`L$ldEZ6p!8ySl|
z(xj`CJ84F4wPvIx+^Up=oV(VeWX7wnC@eH^2?P-hf!0f%PEP?&AVlnr+=j
zYlX!|#XfT%;;b`r)%C%Dn__K#>8)c`+ruSwF|geYF1Dc>0+pTDBh_QkW%rFAt~cih
zgj^5Tam=AJ;leD|eAdxY>ONJpXo_k`6thoWxxTlQsKmOKJRc{@N7n5QnuYr>e(lS~>f}#HNLR=`*v<;vH*b&m5^D^=*t$y~;AzsA&cv7P9`rmj}$ZyJ=mPShc_
zdiJvKs>tSg^CX9V^i4XHvFDb@Qt373s;By?s`X^we3?`3q_y&mPKy|Xy=SZqxt6JN
zzFPU}<s9S{iJ8sp;f7WplOGD2we<7gJuD^LLVc^?F^GRwuj_#a4F>-LQhRJS+%Lc=
z$A&F-OZmX>4$Q@%AZ9-eHS^&XsJq
P1CwMdNe1gC00000gk?C6
diff --git a/src/main/java/fybug/nulll/pdconcurrent/SyLock.java b/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
index 2fdfc92..8a9e548 100644
--- a/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
+++ b/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
@@ -395,6 +395,7 @@ interface SyLock {
* @see #lock(LockType, trySupplier, Function, Function)
* @since 0.1.0
*/
+ @SuppressWarnings("unused")
default
void write(@NotNull tryRunnable run, @Nullable Consumer catchby, @Nullable Runnable finaby) {
lock(LockType.WRITE, () -> {
@@ -403,7 +404,7 @@ interface SyLock {
}, catchby == null ? null : e -> {
catchby.accept(e);
return null;
- }, finaby == null ? null : _ -> {
+ }, finaby == null ? null : r -> {
finaby.run();
return null;
});
--
Gitee
From 929f29e0dbe93b90d6afdae9276ae7c58e65fb3f Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 11:50:02 +0800
Subject: [PATCH 08/18] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index e5517f4..b6d4be7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
org.apache.maven.plugins
maven-javadoc-plugin
- 3.11.2
+ 3.11.3
-Xdoclint:none
--
Gitee
From 0c00e2a320fed27e1d88fb710108630e0bb0a653 Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 11:50:48 +0800
Subject: [PATCH 09/18] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index b6d4be7..9a75a32 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
org.apache.maven.plugins
maven-javadoc-plugin
- 3.11.3
+ 3.0.0
-Xdoclint:none
--
Gitee
From b9043d2ad5d610495471a6b86aa23602749441e1 Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 11:53:08 +0800
Subject: [PATCH 10/18] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index 9a75a32..c50e43d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,9 +11,11 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
org.apache.maven.plugins
maven-javadoc-plugin
- 3.0.0
+ 3.11.3
- -Xdoclint:none
+
+ -Xdoclint:none
+
--
Gitee
From 434cfe902d0525f0b8f1fd8ac141dbc98329fa5c Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 11:53:50 +0800
Subject: [PATCH 11/18] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index c50e43d..13d3b31 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
org.apache.maven.plugins
maven-javadoc-plugin
- 3.11.3
+ 3.0.0
-Xdoclint:none
--
Gitee
From c07ed581127bcd39849e4c4455b8e3789ab63a3d Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 12:03:15 +0800
Subject: [PATCH 12/18] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/pom.xml b/pom.xml
index 13d3b31..6fcb445 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,9 +13,11 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
maven-javadoc-plugin
3.0.0
-
- -Xdoclint:none
-
+ UTF-8
+ true
+ UTF-8
+ UTF-8
+ -Xdoclint:none
--
Gitee
From 3dd215228d2f80928e336014842272e019919693 Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 12:08:53 +0800
Subject: [PATCH 13/18] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/pom.xml b/pom.xml
index 6fcb445..d5f398a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,6 +13,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
maven-javadoc-plugin
3.0.0
+ true
UTF-8
true
UTF-8
--
Gitee
From cfd971c1153ac3e9fa6e2a8ebdb44a6c4c7d492b Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 14:10:13 +0800
Subject: [PATCH 14/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0javadoc?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 8 +++----
build.gradle | 6 ++---
pom.xml | 23 ++++++++++++++++---
.../java/fybug/nulll/pdconcurrent/SyLock.java | 12 ++++------
4 files changed, 31 insertions(+), 18 deletions(-)
diff --git a/README.md b/README.md
index d71eb39..49817e3 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@
本工具采用读写锁标准,无论内部实现如何,外部接口均提供 **read, **write 方法区分读锁并发域和写锁并发域
-### \> > 基础使用示例
+### 基础使用示例
```java
public static void main(String[] args) {
var lock = SyLock.newObjLock();
@@ -45,7 +45,7 @@ public static void main(String[] args) {
可通过接口的工厂方法实例化内部采用不同实现的锁。
-### \> > synchronized 锁
+### synchronized 锁
```java
public static void main(String[] args) {
// 使用
@@ -62,7 +62,7 @@ public static void main(String[] args) {
```
-### \> > ReentrantLock 锁
+### ReentrantLock 锁
```java
public static void main(String[] args) {
// 使用
@@ -82,7 +82,7 @@ public static void main(String[] args) {
}
```
-### \> > ReadWriteLock 锁
+### ReadWriteLock 锁
```java
public static void main(String[] args) {
// 使用
diff --git a/build.gradle b/build.gradle
index 7fad4d0..a50a637 100644
--- a/build.gradle
+++ b/build.gradle
@@ -63,7 +63,7 @@ task PDConcurrent_bin(type: Jar) {
'Build-Jdk-Spec': 23,
'Bundle-Description': 'java并发控制工具',
'Bundle-Name': 'PDConcurrent',
- 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
+ // 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
'Bundle-Vendor': 'IntelliJ IDEA',
'Bundle-Version': version,
'Bundle-License': 'https://www.apache.org/licenses/LICENSE-2.0',
@@ -82,7 +82,7 @@ task PDConcurrent_all(type: Jar) {
'Build-Jdk-Spec': 23,
'Bundle-Description': 'java并发控制工具',
'Bundle-Name': 'PDConcurrent',
- 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
+ // 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
'Bundle-Vendor': 'IntelliJ IDEA',
'Bundle-Version': version,
'Bundle-License': 'https://www.apache.org/licenses/LICENSE-2.0',
@@ -107,7 +107,7 @@ task PDConcurrent_sources(type: Jar) {
'Build-Jdk-Spec': 23,
'Bundle-Description': 'java并发控制工具',
'Bundle-Name': 'PDConcurrent',
- 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
+ // 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
'Bundle-Vendor': 'IntelliJ IDEA',
'Bundle-Version': version,
'Bundle-License': 'https://www.apache.org/licenses/LICENSE-2.0',
diff --git a/pom.xml b/pom.xml
index d5f398a..38a91d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,6 +6,23 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
fybug.nulll
PDConcurrent
0.1.0
+
+
+ org.projectlombok
+ lombok
+ LATEST
+
+
+ jakarta.validation
+ jakarta.validation-api
+ LATEST
+
+
+ jakarta.annotation
+ jakarta.annotation-api
+ LATEST
+
+
@@ -13,16 +30,16 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
maven-javadoc-plugin
3.0.0
- true
+ 23
UTF-8
- true
UTF-8
UTF-8
- -Xdoclint:none
+ -Xdoclint:none
attach-javadocs
+ package
jar
diff --git a/src/main/java/fybug/nulll/pdconcurrent/SyLock.java b/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
index 8a9e548..1d7929a 100644
--- a/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
+++ b/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
@@ -66,7 +66,6 @@ interface SyLock {
* @see #lock(LockType, trySupplier, Function, Function)
* @since 0.1.0
*/
- @SuppressWarnings("unused")
default
void lock(@NotNull LockType lockType, @NotNull tryRunnable run, @Nullable Consumer catchby,
@Nullable Runnable finaby)
@@ -77,7 +76,7 @@ interface SyLock {
}, catchby == null ? null : e -> {
catchby.accept(e);
return null;
- }, finaby == null ? null : r -> {
+ }, finaby == null ? null : _ -> {
finaby.run();
return null;
});
@@ -165,13 +164,12 @@ interface SyLock {
* @see #trylock(LockType, trySupplier, Function)
* @since 0.1.0
*/
- @SuppressWarnings("unused")
default
void trylock(@NotNull LockType lockType, @NotNull tryRunnable run, @Nullable Runnable finaby) throws Exception {
trylock(lockType, () -> {
run.run();
return null;
- }, finaby == null ? null : r -> {
+ }, finaby == null ? null : _ -> {
finaby.run();
return null;
});
@@ -340,7 +338,6 @@ interface SyLock {
* @see #lock(LockType, trySupplier, Function, Function)
* @since 0.1.0
*/
- @SuppressWarnings("unused")
default
void read(@NotNull tryRunnable run, @Nullable Consumer catchby, @Nullable Runnable finaby) {
lock(LockType.READ, () -> {
@@ -349,7 +346,7 @@ interface SyLock {
}, catchby == null ? null : e -> {
catchby.accept(e);
return null;
- }, finaby == null ? null : r -> {
+ }, finaby == null ? null : _ -> {
finaby.run();
return null;
});
@@ -395,7 +392,6 @@ interface SyLock {
* @see #lock(LockType, trySupplier, Function, Function)
* @since 0.1.0
*/
- @SuppressWarnings("unused")
default
void write(@NotNull tryRunnable run, @Nullable Consumer catchby, @Nullable Runnable finaby) {
lock(LockType.WRITE, () -> {
@@ -404,7 +400,7 @@ interface SyLock {
}, catchby == null ? null : e -> {
catchby.accept(e);
return null;
- }, finaby == null ? null : r -> {
+ }, finaby == null ? null : _ -> {
finaby.run();
return null;
});
--
Gitee
From 1a2ae0996006aa9664644aa180bfd9f0882a1a5d Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 14:12:52 +0800
Subject: [PATCH 15/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0javadoc?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 38a91d6..1478c00 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
maven-javadoc-plugin
3.0.0
- 23
+
UTF-8
UTF-8
UTF-8
--
Gitee
From d141f7fae8bb04847b482dfadcb12e4fd00ba320 Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 14:15:08 +0800
Subject: [PATCH 16/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0javadoc?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/fybug/nulll/pdconcurrent/SyLock.java | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/main/java/fybug/nulll/pdconcurrent/SyLock.java b/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
index 1d7929a..8a9e548 100644
--- a/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
+++ b/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
@@ -66,6 +66,7 @@ interface SyLock {
* @see #lock(LockType, trySupplier, Function, Function)
* @since 0.1.0
*/
+ @SuppressWarnings("unused")
default
void lock(@NotNull LockType lockType, @NotNull tryRunnable run, @Nullable Consumer catchby,
@Nullable Runnable finaby)
@@ -76,7 +77,7 @@ interface SyLock {
}, catchby == null ? null : e -> {
catchby.accept(e);
return null;
- }, finaby == null ? null : _ -> {
+ }, finaby == null ? null : r -> {
finaby.run();
return null;
});
@@ -164,12 +165,13 @@ interface SyLock {
* @see #trylock(LockType, trySupplier, Function)
* @since 0.1.0
*/
+ @SuppressWarnings("unused")
default
void trylock(@NotNull LockType lockType, @NotNull tryRunnable run, @Nullable Runnable finaby) throws Exception {
trylock(lockType, () -> {
run.run();
return null;
- }, finaby == null ? null : _ -> {
+ }, finaby == null ? null : r -> {
finaby.run();
return null;
});
@@ -338,6 +340,7 @@ interface SyLock {
* @see #lock(LockType, trySupplier, Function, Function)
* @since 0.1.0
*/
+ @SuppressWarnings("unused")
default
void read(@NotNull tryRunnable run, @Nullable Consumer catchby, @Nullable Runnable finaby) {
lock(LockType.READ, () -> {
@@ -346,7 +349,7 @@ interface SyLock {
}, catchby == null ? null : e -> {
catchby.accept(e);
return null;
- }, finaby == null ? null : _ -> {
+ }, finaby == null ? null : r -> {
finaby.run();
return null;
});
@@ -392,6 +395,7 @@ interface SyLock {
* @see #lock(LockType, trySupplier, Function, Function)
* @since 0.1.0
*/
+ @SuppressWarnings("unused")
default
void write(@NotNull tryRunnable run, @Nullable Consumer catchby, @Nullable Runnable finaby) {
lock(LockType.WRITE, () -> {
@@ -400,7 +404,7 @@ interface SyLock {
}, catchby == null ? null : e -> {
catchby.accept(e);
return null;
- }, finaby == null ? null : _ -> {
+ }, finaby == null ? null : r -> {
finaby.run();
return null;
});
--
Gitee
From cd3bccc1d312898d7bf24f14068c8cb622c64395 Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Wed, 8 Jan 2025 16:43:01 +0800
Subject: [PATCH 17/18] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=A4=9A=E4=BD=99?=
=?UTF-8?q?=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
build.gradle | 72 ++++++++----------
jar/PDConcurrent_bin.jar | Bin 15518 -> 15508 bytes
jar/PDConcurrent_sources.jar | Bin 11443 -> 11926 bytes
pom.xml | 51 -------------
.../java/fybug/nulll/pdconcurrent/RWLock.java | 4 +
.../java/fybug/nulll/pdconcurrent/ReLock.java | 2 +
.../java/fybug/nulll/pdconcurrent/SyLock.java | 27 +++++--
.../nulll/pdconcurrent/e/package-info.java | 8 ++
.../nulll/pdconcurrent/fun/tryConsumer.java | 2 +
.../nulll/pdconcurrent/fun/tryFunction.java | 3 +
.../nulll/pdconcurrent/fun/trySupplier.java | 2 +
11 files changed, 73 insertions(+), 98 deletions(-)
delete mode 100644 pom.xml
create mode 100644 src/main/java/fybug/nulll/pdconcurrent/e/package-info.java
diff --git a/build.gradle b/build.gradle
index a50a637..1984629 100644
--- a/build.gradle
+++ b/build.gradle
@@ -37,88 +37,82 @@ repositories {
}
dependencies {
+ // 本地依赖
implementation fileTree(dir: 'lib', includes: ['*.jar'])
+ // 注释包
compileOnly "jakarta.validation:jakarta.validation-api:+"
compileOnly "jakarta.annotation:jakarta.annotation-api:+"
+ // lombok
compileOnly 'org.projectlombok:lombok:+'
annotationProcessor 'org.projectlombok:lombok:+'
- // testImplementation "junit:junit"
+ // 注释包
testCompileOnly "jakarta.validation:jakarta.validation-api:+"
testCompileOnly "jakarta.annotation:jakarta.annotation-api:+"
+ // lombok
testCompileOnly "org.projectlombok:lombok:+"
testAnnotationProcessor "org.projectlombok:lombok:+"
+ // testImplementation "junit:junit"
}
test {
useJUnitPlatform()
}
-task PDConcurrent_bin(type: Jar) {
- destinationDirectory = file('jar')
+/** 清单文件内容 */
+tasks.withType(Jar).configureEach {
manifest {
attributes('Manifest-Version': '1.0',
'Built-By': 'fybug/风雨bu改',
'Build-Jdk-Spec': 23,
'Bundle-Description': 'java并发控制工具',
'Bundle-Name': 'PDConcurrent',
- // 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
+ 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
'Bundle-Vendor': 'IntelliJ IDEA',
'Bundle-Version': version,
'Bundle-License': 'https://www.apache.org/licenses/LICENSE-2.0',
'Created-By': 'Gradle 8.10.2')
}
+}
+
+/** 编译包 */
+tasks.register('PDConcurrent_bin', Jar) {
+ dependsOn classes
+ destinationDirectory = file('jar')
+ // manifest { attributes(manifest_val()) }
archiveFileName = 'PDConcurrent_bin.jar'
+ archiveClassifier = ''
// 打包编译输出
from sourceSets.main.output
}
-task PDConcurrent_all(type: Jar) {
+/** 源码包 */
+tasks.register('PDConcurrent_sources', Jar) {
+ dependsOn classes
destinationDirectory = file('jar')
- manifest {
- attributes('Manifest-Version': '1.0',
- 'Built-By': 'fybug/风雨bu改',
- 'Build-Jdk-Spec': 23,
- 'Bundle-Description': 'java并发控制工具',
- 'Bundle-Name': 'PDConcurrent',
- // 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
- 'Bundle-Vendor': 'IntelliJ IDEA',
- 'Bundle-Version': version,
- 'Bundle-License': 'https://www.apache.org/licenses/LICENSE-2.0',
- 'Created-By': 'Gradle 8.10.2')
- }
+ // manifest { attributes(manifest_val()) }
+ archiveFileName = 'PDConcurrent_sources.jar'
+ archiveClassifier = 'sources'
+ // 打包源码
+ from sourceSets.main.allSource
+}
+
+tasks.register('PDConcurrent_all', Jar) {
+ dependsOn classes
+ destinationDirectory = file('jar')
+ // manifest { attributes(manifest_val()) }
archiveFileName = 'PDConcurrent_all.jar'
+ archiveClassifier = 'all'
// 打包编译输出
from sourceSets.main.output
- // 打包源码
- from sourceSets.main.allSource
from {
// implementation 相关的引入解压并打包入新的jar中
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
-task PDConcurrent_sources(type: Jar) {
- destinationDirectory = file('jar')
- manifest {
- attributes('Manifest-Version': '1.0',
- 'Built-By': 'fybug/风雨bu改',
- 'Build-Jdk-Spec': 23,
- 'Bundle-Description': 'java并发控制工具',
- 'Bundle-Name': 'PDConcurrent',
- // 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
- 'Bundle-Vendor': 'IntelliJ IDEA',
- 'Bundle-Version': version,
- 'Bundle-License': 'https://www.apache.org/licenses/LICENSE-2.0',
- 'Created-By': 'Gradle 8.10.2')
- }
- archiveFileName = 'PDConcurrent_sources.jar'
- // 打包源码
- from sourceSets.main.allSource
-}
-
-task release {
+tasks.register('release') {
dependsOn clean
dependsOn PDConcurrent_bin
dependsOn PDConcurrent_sources
diff --git a/jar/PDConcurrent_bin.jar b/jar/PDConcurrent_bin.jar
index 8b3d7cb68bd6ec0311e8f2039ccc9cc2c64517ee..6899086d1faf720f96032c4d4a0e2fd6a4fc3cd2 100644
GIT binary patch
delta 10356
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
E2YUc^761SM
delta 10319
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
diff --git a/jar/PDConcurrent_sources.jar b/jar/PDConcurrent_sources.jar
index 8370a0a1af54af0e9e2b6d19455b2a401e445993..84689efbb65b717870a6b6dded61b6ef6a3b335c 100644
GIT binary patch
delta 7433
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